Vue-Router动态路由匹配
//重点在于路由出口
<p>
<!-- 使用 router-link 组件来导航. -->
<!-- 通过传入 `to` 属性指定链接. -->
<!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
使用路由的步骤
1:导入Vue和VueRouter,要调用 Vue.use(VueRouter)
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router) 2:导入组件
import XQNindex from '@/pages/index/XQNindex' 3:定义路由
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
] 4:创建router实例,传入定义的路径作为参数
const router = new VueRouter({
routes // (缩写) 相当于 routes: routes//这玩意就是上面我们定义的路由
}) 5:注入路由
const app = new Vue({
router //这玩意就是我们创建的实例
}).$mount('#app')
访问路由器和当前路由
1:路由器 可以在任意组件当中访问
this.$router
2:访问当前路由
this.$route
3:这两个属性其实都已经放在this(当前组件的data返回对象)中
路由器就是下面这玩意,我定义的路由里面包含了四个页面

当前路由就是下面这玩意

路由携带的参数的设置和读取
1:如果我们这样定义路由,那么像这些玩意
'/user/a1','/use/a2','/use/a3' 都映射到相同的路由,匹配同一个组件,动态路由参数
const router = new VueRouter({
routes: [
// 动态路径参数 以冒号开头
{ path: '/user/:id', component: User }
]
})
不同的用户登录的时候,界面都是一样的,就是这个意思 2:访问动态路由的参数,
this.$toute.params.id //这里的属性id取决于你定义路由的时候 3:一个路由还可以设置多个值啊
/user/evan/post/123,/user/evand/post/456...等
const router = new VueRouter({
routes: [
// 动态路径参数 以冒号开头
{ path: /user/:username/post/:post_id, component: User }
]
})
那么相应的参数对象{ username: 'evan', post_id: 123 } this.$route.params
注意:当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。
那么想对路由参数变化时做出响应:
1:监听$route对象
const User = {
template: '...',
watch: {
'$route' (to, from) {
// 对路由变化作出响应...
}
}
} 2:beforeRouteUpdate 导航守卫
const User = {
template: '...',
beforeRouteUpdate (to, from, next) {
// react to route changes...
// don't forget to call next()
}
}
3:常规参数只会匹配被'/'分割的字符,可以使用'*'匹配任意路由
当使用通配符'*'的时候,$route.params内会自动添加一个pathMath参数,它只包含通配符匹配的部分 4:同一个路径匹配多个路由的时候,匹配的优先级按照定义的先后,谁先定义就匹配谁 5:高级模式待续.............
Vue-Router动态路由匹配的更多相关文章
- 浅谈vue之动态路由匹配
在日常开发过程中,可能会遇到一些类似于新闻详情页的内容,需要把所有详情页映射到同一组件上,这是动态路由匹配的应用场景之一.在使用的过程中,也遇到过一些小坑,此篇做个简要的总结说明: 基本使用 { pa ...
- vue router动态路由
<div id="#app"> <router-link to="/user/header">路由1</router-link&g ...
- Vue 实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案
Vue实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案 by:授客 QQ:1033553122 开发环境 Win 10 Vue 2.9.6 node-v ...
- Vue系列之 => 路由匹配
路由基本使用,加动画切换 1 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- vue的动态路由(登录之后拿到动态路由通过addRouters()动态添加路由)
登录后我们拿到路由动态路由,后端传的数据可能为这个 { path: '/index', meta: { title: '首页', icon: 'icon-shouye', tab_index: , / ...
- 08.vue-router动态路由匹配
动态匹配路由的基本用法 思考: <!-有如下3个路由链接.-> <router-link to="/user/1">User1</router-lin ...
- vue --》动态路由的实现 (根据用户的权限来访问对应的模块)
为了设置用户的访问权限,所以在一个vue工程中,往往需要前端和后端开发人员共同配合设置动态路由, 进而实现根据用户的权限来访问对应的模块 1.首先在登录页面,前端跟据后端返回的路由信息进行配置,配置后 ...
- Vue router 一个路由对应多个视图
使用命名路由 https://jsfiddle.net/posva/6du90epg/ <script src="https://unpkg.com/vue/dist/vue.js&q ...
- vue-router 动态路由匹配
export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld, }, { / ...
随机推荐
- 关于APP测试的一点思考
1 系统入口部分要细化测试用例颗粒度 充分准备好测试数据 真实覆盖线上场景 比如注册验证码的获取 国内 国外手机 一般国外手机发送短信 打电话都要加上区号 2 新版本发布 有新功能上线 ...
- Selenium-Switch--切换浏览器tab/iframe/alart
Switch 我们在UI自动化测试时,总会出现新建一个tab页面.弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了.需要用到Se ...
- vue老司机
你和答案之间只差一个关键字 1.对象二级查找值渲染早于数据获取 解决vue.js 数据渲染成功仍报错的问题
- Spring Cloud 2-RabbitMQ 集成(八)
Spring Cloud RabbitMQ pom.xml application.yml 提供者 消费者 队列配置 单元测试 通过消息队列MQ做为通信中心,这里采用RabbitMQ.安装方参考: ...
- mac配置变量失败导致ls命令都失效
1.在命令行中输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 这样可以保证命令行命令暂时可以使用.命令执行完之后先不要关闭终端 ...
- string format的各类格式及用法
数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4} $12.3656 货币 "¥{0:N2}" ¥12.36 ...
- ubuntu 配置apt-get源
ubantu安装软件速度慢一般是因为系统默认选择的源导致,可以通过手动配置源设置解决. 1. 原文件备份 sudo mv /etc/apt/sources.list /etc/apt/sources. ...
- 以iphone作为热点时ios程序中的UDP广播地址
iPhone 开启热点后,会启用一个 172.20.10.0/28 的子网, 也就是最多15个ip地址,自己的地址是172.20.10.1, 广播地址是 172.20.10.15 ,不是传统的255. ...
- shutil&shelve
https://www.cnblogs.com/xiangsikai/p/7787101.html http://www.cnblogs.com/wupeiqi/articles/4963027.ht ...
- Java - day001 - 8种基本数据类型
一字节8电位 Java byte 最左边一位表示正负,0是正,1是负. (option / alt) + / 代码提示 Refactor 重构 Rename 重命名 (windows 重命名是选中 ...