大白话攻破VueRouter重点知识

刺骨的言语ヽ痛彻心扉 2022-09-09 12:50 364阅读 0赞

https://router.vuejs.org/zh/ vue router 官方文档
wx:前端周计划

官方文档里讲了很多很细,但是很多并不便于理解。这里把vue router 分为几个重点来总体概述一下。通过简单的语言来理解文档中所描述的概念。

在这里插入图片描述

动态路由的分配

其下有三个重要的点,分别是 动态路径参数,通配符和匹配优先级

动态路径参数

id即是一个动态路径参数

  1. path:'/user/:id'

场景可以想象为 :
不同用户进入同一个页面,携带的用户id不同
而且这个参数 会存储在$route.params里面

通配符

符合某些条件的路由匹配

  1. path:'*'
  2. path:'user-*'
  3. 匹配开头为 user-的路由
  4. 要声明的是通配符的路由应该放在最后

匹配优先级

匹配优先级则是 路由定义的越早 优先级越高

嵌套路由

chidren属性中设置嵌套路由

命名路由

name属性是命名路由的核心,即给路由设置上姓名 ​

则 某些操作可以直接进行路由定位
比如

  1. <router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
  2. 或者
  3. router.push({ name: 'user', params: { userId: 123 } })

这两种方式都会按照name 去导航路由的路径

命名视图

只有在一个页面下有多个视口的情况下才需要命名视图来区分。

  1. <router-view ></router-view>
  2. <router-view name="a"></router-view>
  3. <router-view name="b"></router-view>
  4. const router= new VueRouter({
  5. routes:[
  6. {
  7. path:'/',
  8. components:{ //此处需要用复数
  9. default:Default,
  10. a:Amodel,
  11. b:Bmodel
  12. }

而一个视口需要对应一个组件 所以在路由定义处需要有多个components来对应。

重定向和别名

  1. redirect:'/b'
  2. 当访问某路径时会将其重新跳转到b
  3. alias:'/b'
  4. 别名的原理则是
  5. a的别名是b 访问b时等同于路由a但是路径仍然显示b

路由组件的传参

第一种$route的方式

常规方式是利用之前所说的动态路径参数进行传参
缺点是 增大组件与路由的耦合性
也就是说在不带特定参数的路径下则无法正常渲染组件

  1. const User={
  2. template:'<div>User{ { $router.params.id }}</div>'
  3. }
  4. const router =new VueRouter({
  5. routes:[{ path:'/user/:id',component:User}]
  6. }
  7. )

第二种props的方式

优势在于解耦且可以传输复杂数据 props的true or false 代表了 是否接收键值

  1. const User ={
  2. props:['id'],
  3. template:'<div>User{ {id}}</div>'
  4. }
  5. const router =new VueRouter({
  6. router:[
  7. { path:'/user/:id',component:User,props:true},
  8. 包含命名视图的路由
  9. 必须分别为每个命名视图增加props选项
  10. {
  11. path:'/user/:id',
  12. components:{ default:User,b:bUser},
  13. props:{ default:true,sidebar:false}
  14. }]
  15. })

需要特别说一下函数模式的props

传参方式为 /search?q=vue
则匹配到 search对应的路由下 query为最新的键名
而route.query.q将被设置为键值
所以传参的形式 将是 { query :‘vue’ }

  1. const router =new VueRouter({
  2. routes:[
  3. {
  4. path:'/search',
  5. component:SearchUser,
  6. props:route=>({ query : route.query.q })
  7. }
  8. ]
  9. })

发表评论

表情:
评论列表 (有 0 条评论,364人围观)

还没有评论,来说两句吧...

相关阅读

    相关 合同法重点知识总结

    一、合同法的概念 合同法,有广义和狭义的区别。狭义的合同法,是指规范合同的专门法典,如《中华人民共和国合同法》。广义的合同法,是指关于合同的法律规范的总称,包括《民法通则》、

    相关 合同法重点知识汇总

    合同法重点知识汇总 一、 合同法的概念 合同法,有广义和狭义的区别。狭义的合同法,是指规范合同 的专门法典,如《中华人民共和国合同法》。广义的合同法,是指关 于合同的法律规

    相关 旅游经济学重点知识

    旅游经济学重点 第一章 导言 ①旅游经济学:经济学概念在旅游方面的延伸,即以经济学的一般理论为指导,研究旅游经济活动中的各种经济现象、关系、规律及其应用的科学。 ②旅游活

    相关 食品营养学重点知识

    食品营养学重点知识 基本概念 食品:食品指各种供人食用或者饮用的成品和原料,以及按照传统既是食品又是药品的物品,但不包括以治疗为目的的物品。 营养:指机体通过摄取食物,经

    相关 税法重点知识总结

    第一章 税制要素 1.税种的分类 按征税对象分类 (1)流转税主要有:增值税、消费税、营业税和关税 所得税主要有:企业所得税、外商投资企业和外国企业所得税、个人所得税 (3