vue动态路由

官网:https://router.vuejs.org/zh/guide/essentials/navigation.html
一、安装路由
npm install vue-router --save-dev
在src目录下创建router目录
使用 vuecli3创建项目选择路由会自动创建route目录
在这里插入图片描述
在这里插入图片描述

在main.js引入router

二、配置路由

1、 hash: 使用 URL hash 值来作路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器(默认是hash模式)。

2、 history: 依赖 HTML5 History API 和服务器配置。查看 HTML5 History 模式。

3、abstract:支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器 的 API,路由会自动强制进入这个模式。

三、路由跳转
标签跳转:about

当用户点击v-link指令元素时,我们可以大致猜想一下这中间发生了什么事情:
vue-router首先会去查找v-link指令的路由映射
然后根据路由映射找到匹配的组件
最后将组件渲染到标签

编程式跳转:
this. r o u t e r . p u s h ( " / a b o u t " ) t h i s . router.push("/about") this. router.push("/about")this.router.push({
path:"/about",
query:{age:1,name:“张三”}
})
this. r o u t e r . p u s h ( n a m e : " A b o u t " , / / 组 件 名 称 q u e r y : a g e : 1 , n a m e : " 张 三 " ) t h i s . router.push({ name:"About", //组件名称 query:{age:1,name:"张三"} }) this. router.push(name:"About",//query:age:1,name:"")this.router.push({
name:“About”, //组件名称
params:{age:1,name:“张三”}
})
query参数会带到浏览器url后面显示出来使用params就不会

router.go(n) 这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)。
router.go(1) ; // 在浏览器记录中前进一步,等同于 history.forward( )
router.go(-1); // 后退一步记录,等同于 history.back( )
router.go(3); // 前进 3 步记录
this.$router.back() //返回

四、keep-alive 路由缓存
keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,避免重新渲染 ,其有以下特性:
一般结合路由和动态组件一起使用,用于缓存组件;
提供 include 和 exclude 属性,两者都支持字符串或正则表达式, include 表示只有名称匹配的组件会被缓存,exclude 表示任何名称匹配的组件都不会被缓存 ,其中 exclude 的优先级比 include 高;
对应两个钩子函数 activated 和 deactivated ,当组件被激活时,触发钩子函数 activated,当组件被移除时,触发钩子函数 deactivated
全部缓存:



指定路由缓存:



多个路由只想缓存部分路由:
在routre目录下的index.js文件
{
path:’/Distribution’,
name:‘Distribution’,
component: Distribution,
meta: {keepAlive: true // 缓存}
}
页面

//当前进入的路由 meta里面 keepAlive为true时走这里

五、vue router的钩子函数
https://www.cnblogs.com/zhilu/p/13782120.html

六、动态添加路由
const routerArr=[
{
path: ‘/about’,
name: ‘About’,
meta: {
keepAlive: true // 路由缓存
},
component: ()=>import(’…/views/About.vue’),
children:[
{
path: ‘/about/children’,
name: ‘Children’,
component: ()=>import("@/views/children"),
}
]
}
]
router.addRoutes(routerArr)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值