vue2路由(下)
Posted 知不足,而学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue2路由(下)相关的知识,希望对你有一定的参考价值。
编程式路由导航
通过点击按钮实现push和replace俩种模式的跳转
实现:就是通过$router原型里面的方法
也能实现路由的跳转和后退,分别采用的是$router里面的black和forward方法
感觉就是BOM对象中的history对象里面的方法
正是前进,后是后退
总结:
作用:不借助 ``<router-link> ``实现路由跳转,让路由跳转更加灵活
具体编码:
//$router的两个API
this.$router.push(
name:'xiangqing',
params:
id:xxx,
title:xxx
)
this.$router.replace(
name:'xiangqing',
params:
id:xxx,
title:xxx
)
this.$router.forward() //前进
this.$router.back() //后退
this.$router.go() //可前进也可后退
缓存路由组件
意思就是切换到Message组件时,还保留着input框内容
因为是组件切换,它被销毁了,需要重新渲染
如果不想要它被销毁,只需用keep-alive包含组件,当然如果不添加include,它会把所有的组件都保留下来,这大可不必,因此通过添加include,把需要的组件保留下来
这里要注意的是保留的是组件名不是路由名
总结
作用:让不展示的路由组件保持挂载,不被销毁。
<keep-alive include="News">
<router-view></router-view>
</keep-alive>
如果要缓存多个组件,可以写成数组的形式
俩个新的生命周期钩子
activated() 和deactivated()这个是路由组件独有的生命周期。它就是News组件显示到你面前就是激活,切换到message组件,它就失活
总结:
* 作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。
* 具体名字:
1. ``activated``路由组件被激活时触发。
2. ``deactivated``路由组件失活时触发。
Vue-cli-4-路由配置文件,路由进阶,二级路由
参考技术A vue.config.js 是vue的配置文件,必须创建在 demo根目录 下,该配置文件中,只能使用commonjs模块化语法,使用module.export导出,格式如下图。@符号代表src资源目录,在vue.config.js文件中将路径解析,path.resolve是拼接路径方法。将@c定义为当前绝对路径
@c代表src目录下的components文件,@v代表src目录下的views文件,其他同理,后续在其他文件中引入文件时,只需要使用以下方法即可导入,不会随着文件目录的改变而改变。
1.路由模式
2.路由元信息
meta属性,配置路由的元信息,其实就是在每个路由身上配置一份数据
3.路由守卫
在meta对象中,可以配置一个roles属性,其中可以配置路由的访问权限,下图中可访问的人已标记为admin,vip及user
其次,在 router.beforeEach 及 router.AfterEach 中可以配置信息
router.beforeEach 是路由前置守卫,每次跳转路由之前,都会拦截,其中next()方法表示下一步(跳转),其中是一个回调函数,其中有三个参数to,from,next
router.AfterEach是 路由后置守卫,其中可以将页面的title设置为meta属性中设置的title,其中是一个回调函数,其中有两个参数to,from
浏览器的访问权限可以在application中的session storage中添加一个roles:admin,如果路由信息中meta中未设置roles,则无法访问该设置了roles属性的路由页面
安装: npm install nprogress(给路由页面的跳转添加一个上方的进度条)
导入:
首先在页面views中创建一个文件夹,然后在该文件夹中创建两个二级路由页面,如下图所示
然后在所需要创建二级路由的一级路由创建信息中添加一个 children数组 ,该数组中添加二个对象,每个对象就是该一级路由页面的一个二级路由页面,如下图所示,该二级路由信息中的component信息采用了 路由懒加载 的方式导入
然后在一级路由页面one.vue中写入二级路由页面的router-link导航和router-view
最终效果如下图所示
以上是关于vue2路由(下)的主要内容,如果未能解决你的问题,请参考以下文章