1、router-view可以理解为一个占位符,用来给 当前url映射的组件 占位的,当前url映射的组件 会替换掉

2、router-link是一个全局组件,可以在任何一个vue组件中使用

3、动态路由:路由中的path是动态的,根据传参来显示对应的页面

import Vue from 'vue'
import VueRouter from 'vue-router'Vue.use(VueRouter)const routes = [{path: '/', //等价于 path: ''redirect: '/home' },{path: '/home',name: 'home',component: () => import('../views/home.vue')},{path: '/about',name: 'about',component: () => import('../views/about.vue')},{path: '/user/:userName/:useAge',name: 'user',component: () => import('../views/user.vue')}
]const router = new VueRouter({mode: 'history', //指定为history模式base: process.env.BASE_URL,routes,linkActiveClass: 'active' //给当前处于活跃状态的 router-link 添加一个 class:'active'
})export default router
<template><div id="app"><!-- router-link默认渲染为a标签,tag可以指定渲染为某个标签 --><router-link to="/home" tag="button" >首页</router-link>&nbsp;  <!-- replace无法通过 浏览器的返回按钮 返回上一页 --><router-link to="/about" replace>关于</router-link>&nbsp;  <router-link :to="'/user/'+name">用户</router-link>&nbsp;  <router-view/></div>
</template>
<script>
export default {data() {return {name: 'Tom'}}
}
</script><style lang="less">
#app {font-size: 12px;// 给当前处于活跃状态的 router-link 的文字设置为红色.active {color: red;}
}
</style>
// user.vue
<template><div class="user">user<div>当前用户为:{{$route.params.userName}}</div></div>
</template>


注意:
this.router指的是constrouter=newVueRouter()中的router,代表整个router;this.router 指的是 const router = new VueRouter() 中的router ,代表整个router; this.router指的是constrouter=newVueRouter()中的router,代表整个router;this.route 指的是 当前处于 活跃状态的路由对象,例如:

 {path: '/user/:userName/:useAge',name: 'user',component: () => import('../views/user.vue')}

4、路由嵌套

 . . . {path: '/home',name: 'home',component: () => import('../views/home.vue'),children: [{path: '/', //等价于 path: ''redirect: 'homeNews' },{path: 'homeNews',name: 'homeNews',component: () => import('../views/homeNews.vue'),},{path: 'homeMessage',name: 'homeMessage',component: () => import('../views/homeMessage.vue'),}]},. . .
// home.vue<template><div class="home"><div>home</div><router-link to="/home/homeNews">新闻</router-link>&nbsp;<router-link to="/home/homeMessage">消息</router-link><router-view/></div>
</template>

结果:

5、路由传参

params:

 {path: '/user/:userName/:useAge',name: 'user',component: () => import('../views/user.vue')}跳转路由并携带params参数,to的字符串写法:<router-link :to="`/user/${myName}/${myAge}`">用户</router-link>data() {return {myName: 'tm',myAge: '18'}}this.$router.push(`/user/${this.myName}/${this.myAge}`)
 {path: '/user',name: 'user',component: () => import('../views/user.vue')}跳转路由并携带params参数,to的对象写法(只能用name,不能用path):<router-link :to="{name: 'user',params: {userName: myName,useAge: myAge}}">用户</router-link>data() {return {myName: 'tm',myAge: '18'}}this.$router.push({name: 'user',params: {userName: this.myName,useAge: this.myAge}})

获取数据:

this.$route.params.userName
this.$route.params.userAge

query:

跳转路由并携带query参数,to的对象写法(path,name都能用):
<router-link :to="{path: '/profile', query: {name: myName ,age: myAge}}">档案</router-link>跳转路由并携带query参数,to的字符串写法:
<router-link :to="`/profile?name=${myName}&age=${myAge}`">档案</router-link>data() {return {myName: 'tm',myAge: '18'}
}this.$router.push({path: '/profile',query: {name: this.myName, age: this.myAge}})

获取数据:

this.$route.query.name

query结合props
1、对象写法

//about.vueprofileClick() {this.$router.push({name: 'profile',query: {name: 'tm',age: 18}})}
  {path: '/profile',name: 'profile',meta: {title: '档案'},props($route) {return {bb: $route.query.name, cc: $route.query.age}},component: () => import('../views/profile.vue')},
//profile.vue
<h5>{{bb}}-{{cc}}</h5>props: ['bb', 'cc'],

2、字符串写法

this.$router.push(`/profile?name=tm&age=18`)

params结合props
1、字符串写法

//about.vueprofileClick() {this.$router.push(`/profile/tm/18`)}
{path: '/profile/:name/:age',name: 'profile',meta: {title: '档案'},props($route) {return {bb: $route.params.name, cc: $route.params.age}},component: () => import('../views/profile.vue')},
//profile.vue<h5>{{bb}}-{{cc}}</h5>props: ['bb', 'cc'],

1、对象写法

 profileClick() {this.$router.push({name: 'profile',params: {name: 'tm',age: 18}})}
  {path: '/profile',name: 'profile',meta: {title: '档案'},props($route) {return {bb: $route.params.name, cc: $route.params.age}},component: () => import('../views/profile.vue')},
  <h5>{{bb}}-{{cc}}</h5>props: ['bb', 'cc'],

router-view、router-link属性、动态路由的使用、路由嵌套、路由传参相关推荐

  1. 路由之间的转跳及传参

    跳转 路由之间的转跳可以通过两种方式实现: 1.通过官方提供的router-link标签实现,它与a标签相似,给我们提供跳转到某个路由的功能. 用法: <router-link to=" ...

  2. 【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)

    开始前,请先完成圆梦宝典中滚动公告栏的开发,详见 [微信小程序-原生开发]实用教程 08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据 ...

  3. VUE二级/多级路由配置方式(嵌套路由)

    二级路由中path写法不同对应router-link标签to属性的不同写法 二级路由配置path:"/XXX",path中带/ ,则对应的路由导航router-link中的to属性 ...

  4. vuel路由间通讯_vue嵌套路由之间的通信(非vuex方法实现)

    1.先在main.js里生成一个自定义事件 2.这是我路由设置的嵌套路由 3.用法: 父路由接收子路由用自定义事件 子路由里的事件绑定 : this.$root.myEvent.$emit(" ...

  5. uniapp php交互,uni-app路由跳转及参数的传参和接收

    1.保留当前页面,跳转到应用内的某个页面,使用uni.navigateTo: 示例: 在起始页面跳转到test.vue页面并传递参数 uni.navigateTo({ url: 'test?id=1& ...

  6. 【vue-route路由配置+路由router三种跳转方式+两类传参queryparams】

    PS:个人总结笔记 简单说下,很粗略,入门级 1.vue-route路由配置 import Vue from 'vue' import VueRouter from 'vue-router'//使用V ...

  7. id vue2路由传参_Vue2.0中 $route 和 $router 的区别

    在做Vue项目时,在路由设置和跳转时有没有遇到过 $route 和 $router?乍一看,两个看起来几乎一模一样,有点傻傻分不清楚,他们到底有什么区别?在什么情况下用呢? 我们把这2个在控制台打印出 ...

  8. 几个经常用到的angular路由Router、ActivatedRoute 知识点:嵌套路由、路由跳转、路由传参、路由参数获取

    深度玩家可移步Angular - 常见路由任务 1.嵌套路由 const routes: Routes = [{path: 'first',component: FirstComponent,//同步 ...

  9. vue中路由传参方式之二(this.$router.push进行编程式路由跳转传参)

    this.$router.push进行编程式路由跳转传参 router中路由配置 组件home点击传参 组件homeDetails接受参数 router中路由配置 params第一种传参路由配置 {p ...

  10. vue-router详尽:编程式导航、路由重定向、动态路由匹配、路由别名、嵌套路由、命名视图

    vue-router编程式导航 在vue项目中经常用到this.$router.push() 和 this.$router.replace() 方法进行路由跳转就是编程式导航... 通俗理解编程式导航 ...

最新文章

  1. 限时领取!阿里Java面试复盘手册.pdf
  2. Oracle 11g Release 1 (11.1) 游标——显式游标
  3. 转元组 python_Python基础教程,第三讲,列表和元组
  4. Sharepoin学习笔记—架构系列—Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1
  5. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<基础篇>
  6. 非常适合新手的jq/zepto源码分析05
  7. C++中map的遍历的代码
  8. 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
  9. node.js连接数据库实现注册登录拼接添加到页面 (增删改查)
  10. python训练数据集_python 划分数据集为训练集和测试集的方法 python中如何实现将数据分成训练集与测试集...
  11. 内网网段范围_局域网网段到底是什么意思?怎么划分的啊?为什么要划分网段?...
  12. Intel-8088/8086微处理器
  13. Redis键-值数据库 nosql 数据建模(3)------ 如何存储主从表数据 一对多关系
  14. matlab 曲线填充 透明度
  15. Map练习题:求地铁票价
  16. 属性(Property)的性质(Attribute)介绍
  17. java 和javafx_9月的十大Java故事:Java 13,JavaFX 13和Jakarta EE 8
  18. WiFi - 访客网络有什么用?怎么开启?
  19. Materials Studio建模——异质结的建立(1)
  20. 李永乐(四)初等变换、初等矩阵、分块矩阵——笔记

热门文章

  1. 2018第七届中国(北京)国际智能楼宇展览会
  2. Java实现:两个乒乓球队进行比赛问题
  3. oppo 上架游戏流程
  4. 星号棱形,数字棱形及其他对称图形的分析方法
  5. HTTPS证书的生成与配置
  6. 【MATLAB定义函数的几种方式】
  7. matlab定义函数
  8. 推荐10 款好用的 Python IDE
  9. oneinstack_OneinStack常用命令
  10. 深入理解ELF文件格式(一)