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路由(下)的主要内容,如果未能解决你的问题,请参考以下文章

hbuilderx可以写vue2吗

为某些路由禁用 vue-router?或者如何运行 SPA 后端和非 SPA 前端?

hbuilderx可以写vue2吗

Javascript实现前端简单路由

页面间大量数据参数传递

Vue2.0学习—路由(六十五)