//重点在于路由出口
<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动态路由匹配的更多相关文章

  1. 浅谈vue之动态路由匹配

    在日常开发过程中,可能会遇到一些类似于新闻详情页的内容,需要把所有详情页映射到同一组件上,这是动态路由匹配的应用场景之一.在使用的过程中,也遇到过一些小坑,此篇做个简要的总结说明: 基本使用 { pa ...

  2. vue router动态路由

    <div id="#app"> <router-link to="/user/header">路由1</router-link&g ...

  3. Vue 实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案

    Vue实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案   by:授客 QQ:1033553122   开发环境   Win 10   Vue 2.9.6   node-v ...

  4. Vue系列之 => 路由匹配

    路由基本使用,加动画切换 1 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  5. vue的动态路由(登录之后拿到动态路由通过addRouters()动态添加路由)

    登录后我们拿到路由动态路由,后端传的数据可能为这个 { path: '/index', meta: { title: '首页', icon: 'icon-shouye', tab_index: , / ...

  6. 08.vue-router动态路由匹配

    动态匹配路由的基本用法 思考: <!-有如下3个路由链接.-> <router-link to="/user/1">User1</router-lin ...

  7. vue --》动态路由的实现 (根据用户的权限来访问对应的模块)

    为了设置用户的访问权限,所以在一个vue工程中,往往需要前端和后端开发人员共同配合设置动态路由, 进而实现根据用户的权限来访问对应的模块 1.首先在登录页面,前端跟据后端返回的路由信息进行配置,配置后 ...

  8. Vue router 一个路由对应多个视图

    使用命名路由 https://jsfiddle.net/posva/6du90epg/ <script src="https://unpkg.com/vue/dist/vue.js&q ...

  9. vue-router 动态路由匹配

    export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld, }, { / ...

随机推荐

  1. 强连通分量(Kosaraju)

    //P2002解题思路: //先求SCC,缩点后,转换为DAG(有向无环图) //在DAG上统计入度为0的scc数量即可 //Kosaraju时间复杂度:O(N+E) //两次DFS,2N,图的转置E ...

  2. 一次基于innobackupex备份及binlog的单表恢复操作

    [环境介绍] 系统环境:Red Hat Enterprise Linux Server release 7.0 (Maipo) + Server version: 5.7.18-log MySQL C ...

  3. ASP.Net获取Aras连接,并获取Innovator实例

    首先需要在自己的项目bin目录下引入Aras的dll(../Aras\Innovator\Innovator\Server\bin). 注意:在引入Aras的dll时.需要注意自己的操作系统的位数.因 ...

  4. 题解 P3871 【[TJOI2010]中位数】

    orz各位大佬,题解太强了,主席树,堆,线段树,splay,还有暴力,太巨了.所以我用的是fhq treap(好像更高级).算了. 反正都是平衡树,这道题就是动态求中位数,不会做的同学可以先做弱化版P ...

  5. python3 练手实例5 做一个简单电子时钟

    import time,sys,os while(1): t = time.strftime('%Y-%m-%d\n%H:%M:%S',time.localtime(time.time())) pri ...

  6. Java(15) 多态

    一.多态  1.1 多态:一个事物的多种形态  1.2 多态的表现 行为(方法)多态:重写和重载. 引用多态(动态绑定):编译时的类型和运行时不一致的这种现象 例:父类 = 子类 Pet p = ne ...

  7. 15行python代码,帮你理解令牌桶算法

    本文转载自: http://www.tuicool.com/articles/aEBNRnU   在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法 ...

  8. JavaScript定时器详解

    假设有以下场景 setTimeout(function timeoutHandler(){ /*Some timeout handle code that runs for 6ms*/ }, 10); ...

  9. 区块链之智能合约 solidity踩坑 --上篇

    概述 最近在写合约时遇到一些坑,做一下总结: 介绍主要分一下三个方面: 对区块链的简单描述 结合业务场景,编写简单智能合约,时遇到的坑(上篇) assembly 的使用说明(下篇) 正文 进入正题之前 ...

  10. 使用ansible实现轻量级的批量主机管理

    作者:邓聪聪 查看ansible配置文件下的hosts的文件 [root@ansible-server scripts]# cat /etc/ansible/hosts [test] 172.16.1 ...