嵌套路由

实际生活中的应用界面,通常由多层嵌套的组件组合而成。当我们路由到某一个组件后,还经常需要在该组件中继续路由到其子组件,这就需要使用Vue的嵌套路由。比如:当我们路由到登录组件后,又分为手机验证码登录和 账户名密码登录 2个子组件。

语法:
const 子组件 = {template:"子组件标签"
}const 父组件 = {tempalate:`<router-link to="/父组件路径/子组件的路径">链接1</router-link><router-view></router-view>`
}const router = new VueRouter({routes:[{path:"/组件路径",component:父组件对象,children:[//设置子路由信息{path:"子组件路径",//  通常不以/开头component:子组件}]}]
})

示例

<body><div id="app"><router-link to="/login">登录</router-link><router-link to="/register">注册</router-link><hr><router-view></router-view></div><template id="phone-login-form"><form action="">手机号: <input type="number" name="phone" > <br>验证码: <input type="password" name="code"> <br><input type="submit" value="登录"></form></template><template id="account-login-form"><form action="">用户名: <input type="text" name="username" > <br>密码: <input type="password" name="pwd"> <br><input type="submit" value="登录"></form></template><template id="register-form"><form action="">用户名: <input type="text" name="username" > <br>密码: <input type="password" name="pwd1"> <br>确认密码: <input type="password" name="pwd2" > <br><input type="submit" value="注册"></form></template><script>const registerForm = {template:"#register-form"}const phoneLogin = {template:"#phone-login-form"}const accountLogin = {template:"#account-login-form"}const loginForm = {template:`<div><router-link to="/login/phone">手机验证码登录</router-link><router-link to="/login/account">用户名密码登录</router-link> <br> <br><router-view></router-view></div>`}const router = new VueRouter({routes:[{path:"/",redirect:"/register"},{path:"/register",component:registerForm},{path:"/login",component:loginForm,children:[{path:"phone",component:phoneLogin},{path:"account",component:accountLogin}]}]})const vm = new Vue({el:"#app",router})</script>
</body>

路由组件传参

通过路由导航到组件时,有时需要传递参数。

1.query传参

<div id="app"><router-link to="/user?name=李栓蛋&age=38">用户管理</router-link><router-link :to="{path:'/user',query:{name:'王花花',age:28}}">用户管理</router-link><router-view></router-view>
</div>
<script>const user = {template:`<div><div>我叫{{$route.query.name}}</div><div>今年{{$route.query.age}}</div></div>`}const router = new VueRouter({routes:[{path:"/user",component:user}]})const vm = new Vue({el:"#app",router})
</script>

2.params传参

<div id="app"><router-link to="/product/macbookair">商品1</router-link><router-link :to="{name:'product',params:{name:'macbookpro'}}">商品2</router-link>     <router-view></router-view>
</div>
<script>const product = {template:`<div><div>商品名:{{$route.params.name}}</div>  </div>`}//通过:参数名的方式匹配数据const router = new VueRouter({routes:[{name:"product",path:"/product/:name",component:product}]})const vm = new Vue({el:"#app",router})
</script>

Vue第二部分(4): 嵌套路由和路由传参相关推荐

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

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

  2. Vue之路由的query传参加密解密

    首先,创建一个base64.js const Base64 = {//加密encode(str) {return btoa(encodeURIComponent(str).replace(/%([0- ...

  3. React学习:路由定义及传参、数据复用-学习笔记

    文章目录 React学习:路由定义及传参.数据复用-学习笔记 在React中使用react-router-dom路由 简单例子 路由定义及传参 React学习:路由定义及传参.数据复用-学习笔记 在R ...

  4. flutter 返回指定界面_Flutter页面路由导航及传参

    转载请注明出处: https://learnandfish.com/ 概述 每个应用都有很多个页面,在flutter中同样也有很多页面,被称之为路由(Router),页面之间的跳转通过导航器(Navi ...

  5. 一篇文章说完Flutter页面路由导航及传参

    目录 前言 动态路由 静态路由 静态路由传参 Fluro 实现路由导航与传参 前言 在 Flutter 中,App 多个页面之间的跳转是由 Navigator(导航器)来管理的,如常见的 Naviga ...

  6. 尚硅谷VUE项目-前端项目问题总结07--产品详情页【vuex-排他操作foreach-放大镜-轮播图-兄弟组件通信$bus-购物车-路由跳转传参-路由传参+会话存储】-游客身份-节流

    尚硅谷VUE项目-前端项目问题总结07---产品详情页 1.静态组件(详情页还未注册为路由组件) 2.发请求 3.vuex-获取产品详情信息 3.1放大镜 3.2 属性值[排他操作] 3.3轮播图[j ...

  7. vue路由传参两种方式;vue路由传参query与params区别;vue路由跳转的带参与不带参,路由跳转传参方式:name 、 path;

    vue项目的路由传参常用的有两种方式:query和params 1.query传参特点:1.1可以用path也可以用name传递路径 注意name是路由页面vue文件的名称 不需要/1.2跳转页面地址 ...

  8. Vue 路由组件通讯传参的 8 种方式

    当 props 是一个对象时,它将原样设置为组件 props.当 props 是静态的时候很有用. 我们在开发单页面应用时,有时需要进入某个路由后基于参数从服务器获取数据,那么我们首先要获取路由传递过 ...

  9. VUE路由跳转传参的七种方法

    vue中每个页面都需要在路由中声明,就是在router/index.js中写 import Vue from 'vue' import Router from 'vue-router' import ...

  10. vue路由跳转传参的几种方式

    需求是跳转至工单申请详情页面 vue.js中路由配置代码:  import Layout from '@/layout'const repairRouter = {path: '/repair',co ...

最新文章

  1. Python 3 —— 使用 PyMySQL 操作 MySQL8
  2. 局域网子网知识 子网掩码的计算
  3. python读取时间_python 获取时间
  4. CocoaPods详解之----使用篇
  5. 什么是WeakHashMap--转
  6. JavaWeb——EL表达式
  7. 计算机应用基础重点分析,计算机应用基础整体设计重点分析.doc
  8. 泰坦尼克号是怎么从2D转成3D的?
  9. mac 卸载 mysql su_UBUNTU 彻底删除 MYSQL 然后重装 MYSQL
  10. 15b万用表怎么测电容_指针式万用表和数字式万用表的使用与口诀,值得收藏!...
  11. 自考的那些事儿(二):第二次自考完了???
  12. E人E本的android突破与行业走向
  13. 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册...
  14. gis数据与cad数据转换之间的关系
  15. c语言电子时钟设计报告,电子时钟设计实验报告.doc
  16. 精心整理2万字c++知识点
  17. webassembly介绍
  18. 微星z370安装linux系统,在MSI z370主板上安装win7和BIOS设置的详细教程
  19. Vue按键修饰符:@keyup.enter
  20. JavaWeb JavaBean,MVC三层架构

热门文章

  1. excel 两列数据怎么把组合的可能全部做出来?
  2. 用Android Sutdio调试NDK
  3. F问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用?...
  4. 教你打造Silverlight超酷翻页实例
  5. 试析C#编程语言的特点及功能
  6. 今天的就每天练习这招的企业即时通讯
  7. 飞鸽传书为什么传书?
  8. 商业智能常见名词浅释(转载)
  9. 在不了解这5种语言以后就可能永远要消失在世界上了
  10. 一个程序员的真实生活状态。没错,是我!