当前位置: 首页 > news >正文

阆中网站网站建设阿里云官网首页

阆中网站网站建设,阿里云官网首页,千部小黄油资源百度云,做视频网站要用到的服务器,前端路由的核心是什么呢#xff1f;改变URL#xff0c;但是页面不进行整体的刷新。 vue-router是基于路由和组件的  路由用于设定访问路径, 将路径和组件映射起来#xff1b;  在vue-router的单页面应用中, 页面的路径的改变就是组件的切换#xff1b; 使用router需要…,前端路由的核心是什么呢改变URL但是页面不进行整体的刷新。 vue-router是基于路由和组件的  路由用于设定访问路径, 将路径和组件映射起来  在vue-router的单页面应用中, 页面的路径的改变就是组件的切换 使用router需要 1.在router文件夹内书写整个index.js文件 2.在View文件夹内书写具体的router文件内容 3.在App.vue文件夹想要替换内容的地方,写上路由占位符 4.main.js文件内import router from ./router,并且在mount app前app.use(router) 路由的使用步骤 ◼ 使用vue-router的步骤:  第一步创建路由需要映射的组件打算显示的页面  第二步通过createRouter创建路由对象并且传入routes和history模式 ✓ 配置路由映射: 组件和路径映射关系的routes数组 ✓ 创建基于hash或者history的模式  第三步使用app注册路由对象use方法  第四步路由使用: 通过router-link和router-view 0.报错:无法正常渲染router 报错1: 必须把use router写在mount前  报错2: 要么是router-link没写to的路径,要么是  history:createWebHistory,这里没写() 1.简单使用 router文件夹index.js import { createRouter,createWebHashHistory } from vue-router;import Home from ../Views/Home.vue import About from ../Views/About.vueconst router createRouter({//指定采用的模式:hashhistory:createWebHashHistory(),//映射关系routes:[{path:/home,component:Home},{path:/about,component:About},] })export default router Views文件夹下About与Home.vue文件 templateh2about/h2 /template templateh2home/h2 /template App.vue template div classapprouter-view/router-viewh2App content/h2 /div /templatescript setup/scriptstyle langless scoped/style main.js import { createApp } from vue // import ./assets/reset.css import router from ./routerimport App from ./App.vueconst app createApp(App)// 全局注册app.use(router)app.mount(#app) 2.如果希望点击某个区域进行跳转:router-link template div classapph2App content/h2div classnavrouter-link to/home首页/router-linkrouter-link to/about关于/router-link/divrouter-view/router-view /div /templatescript setup/scriptstyle langless scoped/style 3.路由的默认路径  默认情况下, 进入网站的首页, 我们希望router-view渲染首页的内容  但是我们的实现中, 默认没有显示首页组件, 必须让用户点击才可以 ◼ 如何可以让路径默认跳到到首页, 并且router-view渲染首页组件呢? ◼ 我们在routes中又配置了一个映射  path配置的是根路径: /  redirect是重定向, 也就是我们将根路径重定向到/home的路径下, 这样就可以得到我们想要的结果了. const router createRouter({//指定采用的模式:hashhistory:createWebHashHistory(),//映射关系routes:[{path:/,redirect:/home},{path:/home,component:Home},{path:/about,component:About},] }) 4.history模式 使用WebHashHistory哈希模式,域名跳转时会有#,如果切成history则是日常的域名模式 import { createRouter,createWebHashHistory,createWebHistory } from vue-router;import Home from ../Views/Home.vue import About from ../Views/About.vueconst router createRouter({//指定采用的模式:hash// history:createWebHashHistory(),history:createWebHistory(),//映射关系routes:[{path:/,redirect:/home},{path:/home,component:Home},{path:/about,component:About},] })export default router 5.router-link的属性:to/replace/active/name ◼ router-link事实上有很多属性可以配置 ◼ to属性  是一个字符串或者是一个对象 对象写法,记得:to,几乎不在to内使用对象写法 router-link :to{path:/about}关于/router-link◼ replace属性  设置 replace 属性的话当点击时会调用 router.replace()而不是 router.push() div classnavrouter-link to/home replace首页/router-linkrouter-link to/about replace关于/router-link/div 如果使用了replace属性,比如从百度进入8080页面,默认进入首页,此时点击进入关于界面,再点击返回,此时返回的不再是首页,而是百度页面 因为相当于百度→首页,关于页面替换了首页,此时百度→关于,所以点击返回按钮,返回百度界面 ◼ active-class属性  设置激活a元素后自动应用的class默认是router-link-active ◼ exact-active-class属性  链接精准激活时应用于渲染的 a 的 class默认是router-link-exact-active 通过自动绑定的active类,可以对其进行样式操作 .router-link-active {color: red; } ◼ name属性路由记录独一无二的名称 ◼ meta属性自定义的数据  6.路由懒加载 ◼ 当打包构建应用时JavaScript 包会变得非常大影响页面加载  如果我们能把不同路由对应的组件分割成不同的代码块然后当路由被访问的时候才加载对应组件这样就会更加高效  也可以提高首屏的渲染效率 ◼ 其实这里还是我们前面讲到过的webpack的分包知识而Vue Router默认就支持动态来导入组件  这是因为component可以传入一个组件也可以接收一个函数该函数 需要放回一个Promise  而import函数就是返回一个Promise 默认 npm run build不分包(此写法几乎被摒弃 import Home from ../Views/Home.vue import About from ../Views/About.vue 如果想要分包: const Home()import (../Views/About.vue) const About()import (../Views/Home.vue) 如果希望知道到底每个包对应的内容  使用webpack的魔法注释,webpack从3.x开始支持对分包进行命名chunk name) const Home()import (/* webpackChunkName: home */../Views/About.vue) const About()import (/* webpackChunkName: about */../Views/Home.vue)但是现在最广泛的写法是: import { createRouter,createWebHashHistory,createWebHistory } from vue-router;// import Home from ../Views/Home.vue // import About from ../Views/About.vue // const Home()import (/* webpackChunkName: home */../Views/About.vue) // const About()import (/* webpackChunkName: about */../Views/Home.vue)const router createRouter({//指定采用的模式:hash// history:createWebHashHistory(),history:createWebHistory(),//映射关系routes:[{path:/,redirect:/home},{path:/home,component:()import (../Views/Home.vue)},{path:/about,component:()import (../Views/About.vue)},] })export default router 7.动态路由基本匹配 ◼ 很多时候我们需要将给定匹配模式的路由映射到同一个组件  例如我们可能有一个 User 组件它应该对所有用户进行渲染但是用户的ID是不同的  在Vue Router中我们可以在路径中使用一个动态字段来实现我们称之为 路径参数 如果进入user页面,一般user界面会跟着id,但是我们默认的时user,此时无法匹配,无法进入user页面 {path:/user/:id,  const router createRouter({history:createWebHistory(),//映射关系routes:[{path:/,redirect:/home},{path:/home,component:()import (../Views/Home.vue)},{path:/about,component:()import (../Views/About.vue)},{path:/user/:id,component:()import (../Views/User.vue)},] })export default router template div classapph2App content/h2div classnavrouter-link to/home首页/router-linkrouter-link to/about关于/router-linkrouter-link to/user用户/router-linkrouter-link to/user/321用户321/router-linkrouter-link to/user/123用户123/router-link/divrouter-view/router-view /div /template 8.获取动态路由的值 ◼ 那么在User中如何获取到对应的值呢  在template中直接通过 $route.params获取值 ✓ 在created中通过 this.$route.params获取值 ✓ 在setup中我们要使用 vue-router库给我们提供的一个hook useRoute ➢ 该Hook会返回一个Route对象对象中保存着当前路由相关的值 法一:在template中直接通过 $route.params获取值 templateh2 classuserUser:{{$route.params}}/h2 /template {path:/user/:id,component:()import (../Views/User.vue)}, templateh2 classuserUser:{{$route.params.id}}/h2 /template 法二:在setup中我们要使用 vue-router库给我们提供的一个hook useRoute templateh2 classuserUser:{{$route.params.id}}/h2 /templatescript setupimport {useRoute} from vue-routerconst route useRoute()console.log(route.params.id) /script 但是这种写法在 router-link to/user/321用户321/router-linkrouter-link to/user/123用户123/router-link 切换时不会控制台输出 如果想要改变:(很少用到) templateh2 classuserUser:{{$route.params.id}}/h2 /templatescript setupimport { useRoute, onBeforeRouteUpdate } from vue-routerconst route useRoute()console.log(route.params.id)// 获取route跳转idonBeforeRouteUpdate((to, from) {console.log(from:, from.params.id)console.log(to:, to.params.id)})/script 法三: 9.notfound 对于哪些没有匹配到的路由我们通常会匹配到固定的某个页面  比如NotFound的错误页面中这个时候我们可编写一个动态路由用于匹配所有的页面 这里path:/:patMatch(.*)意味着匹配到所有路径 但是home/user/about这种还是会正常跳转的 {path:/:patMatch(.*),component:()import (../Views/NotFound.vue)} templatediv classnot-foundh2NotFound:您当前的路径不正确/h2/div /templatescript setup/scriptstyle scoped /style 获得具体不正确的路径  templatediv classnot-foundh2NotFound:您当前的路径不正确{{$route.params.patMatch}}/h2/div /template 10.编程式路由跳转  使用费router-link跳转需要用到编程式 使用push的特点是压入一个新的页面那么在用户点击返回时上一个页面还可以回退但是如果我们希望当前页面是一个替换操作那么可以使用replace  template div classapph2App content/h2div classnavspan clickhomeSpanClick首页/spanbutton clickaboutBtnClick关于/button/divrouter-view/router-view /div /templatescript setupimport {useRouter} from vue-routerconst routeruseRouter()function homeSpanClick(){router.push(/home)}function aboutBtnClick(){router.push(/about)} /script import {useRouter} from vue-routerconst routeruseRouter()function homeSpanClick(){router.push(/home)} 获取当前正在使用的router  function homeSpanClick(){router.push({path:/home})} 这样写可以写更多参数 11.页面的前进后退 templateh2 classaboutabout/h2button clickbackBtnClick返回/button /templatescript setupimport {useRouter} from vue-routerconst routeruseRouter()function backBtnClick(){router.back()} /script 12.动态添加路由 ◼ 某些情况下我们可能需要动态的来添加路由  比如根据用户不同的权限注册不同的路由  这个时候我们可以使用一个方法 addRoute let isAdmintrue if(isAdmin) {router.addRoute( {path:/admin,component:()import (../Views/Admin.vue)},) }export default router //动态管理路由 let isAdmintrue if(isAdmin) {router.addRoute( {path:/admin,component:()import (../Views/Admin.vue)},)//添加vip页面router.addRoute({path: /home/vip,component: () import(../Views/HomeVip.vue)}); } 动态添加二级路由  13.删除路由 name必须是唯一的 14.路由导航守卫 比如在首页点击order按钮,需要进行拦截,如果已经登录则放行,否则跳转到登录页面
http://www.tj-hxxt.cn/news/221413.html

相关文章:

  • 服务器上 网站成都摄影网站建设
  • 一键自助建站山东振国网站建设
  • 淘宝上找网站建设好吗湖北专业的网瘾学校哪家口碑好
  • 企业php网站建设深圳专业网站建设技术
  • 城市门户网站建设抚州免费注册公司
  • 酒店门户网站建设背景新手学做网站推荐软件
  • 网站文件权限Wordpress连接ftp用户名
  • 网站服务器数据迁移软文推广页面
  • windows 网站开发环境网站运营优化方案
  • 做题网站中计算多项式的值怎么做广告推广代理
  • 多国语言 网站源码唐山模板网站建设
  • 我有服务器怎么做网站宁德建设网站
  • 网站渗透网站后台信息发布这样做
  • 网站开发深入浅出 - python篇数码商城网站建设
  • 南通市住房城乡建设局网站英雄联盟世界排名
  • 免费的个人主页网页制作网站东阳市城建设局网站
  • 肥西建设局官方网站上海优化外包
  • 做交流网站深圳平面设计公司推荐
  • 做摄影网站网站制作怎么办
  • 乌兰察布网站建设网站开发的基本功能
  • 手机网站布局技术做网站百度还是阿里巴巴好
  • 做网站可以做哪些方面的做网站的钱付款用途写什么
  • 怎么选择顺德网站建设乐清上班族网论坛
  • 网站做直链下载存储解决方案建站国外平台
  • 已经有域名 怎么做网站网页设计作品源代码彼岸花坊
  • 宿迁网站推广公司品牌关键词优化哪家便宜
  • 建设银行集团网站首页网站建设的工作职责是什么
  • 网站建设用什么程序语言石家庄是几线城市
  • 网站做电子链接标识申请好吗网络营销案例并分析
  • mcms怎么做网站集成微信的企业网站管理系统