路由组件不会在组件里面放自己组件标签。

案例使用嵌套组件的,但是在Message组件下新增了组件Detail.vue

index.html

//引入bootstrap.css

<link rel="stylesheet" href="<%= BASE_URL %>css/bootstrp.css">

main.js

  1. //引入Vue
  2. import Vue from 'vue'
  3. //引入App
  4. import App from './App.vue'
  5. //引入VueRouter
  6. import VueRouter from 'vue-router'
  7. //引入路由器
  8. import router from './router'
  9.  
  10. //关闭Vue的生产提示
  11. Vue.config.productionTip = false
  12. //应用插件
  13. Vue.use(VueRouter)
  14.  
  15. //创建vm
  16. new Vue({
  17. el:'#app',
  18. render: h => h(App),
  19. router:router
  20. })

About.vue

  1. <template>
  2. <h2>我是About的内容</h2>
  3. </template>
  4.  
  5. <script>
  6. export default {
  7. name:'About'
  8. }
  9. </script>

Messages.vue

  1. <template>
  2. <div>
  3. <ul>
  4. <li v-for="m in messageList" :key="m.id">
  5. <!-- 跳转路由并携带query参数,to的字符串写法 -->
  6. <!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link>&nbsp;&nbsp; -->
  7.  
  8. <!-- 跳转路由并携带query参数,to的对象写法 -->
  9. <router-link :to="{
  10. path:'/home/message/detail',
  11. query:{
  12. id:m.id,
  13. title:m.title
  14. }
  15. }">
  16. {{m.title}}
  17. </router-link>
  18.  
  19. </li>
  20. </ul>
  21. <hr>
  22. <router-view></router-view>
  23. </div>
  24. </template>
  25.  
  26. <script>
  27. export default {
  28. name:'Message',
  29. data() {
  30. return {
  31. messageList:[
  32. {id:'001',title:'消息001'},
  33. {id:'002',title:'消息002'},
  34. {id:'003',title:'消息003'}
  35. ]
  36. }
  37. },
  38. }
  39. </script>

Detail.vue

  1. <template>
  2. <ul>
  3. <li>消息编号:{{$route.query.id}}</li>
  4. <li>消息标题:{{$route.query.title}}</li>
  5. </ul>
  6. </template>
  7.  
  8. <script>
  9. export default {
  10. name:'Detail',
  11. mounted() {
  12. console.log(this.$route)
  13. },
  14. }
  15. </script>

News.vue

  1. <template>
  2. <ul>
  3. <li>news001</li>
  4. <li>news002</li>
  5. <li>news003</li>
  6. </ul>
  7. </template>
  8.  
  9. <script>
  10. export default {
  11. name:'News'
  12. }
  13. </script>

Home.vue

  1. <template>
  2. <div>
  3. <h2>Home组件内容</h2>
  4. <div>
  5. <ul class="nav nav-tabs">
  6. <li>
  7. <router-link class="list-group-item" active-class="active" to="/home/news">News</router-link>
  8. </li>
  9. <li>
  10. <router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link>
  11. </li>
  12. </ul>
  13. <router-view></router-view>
  14. </div>
  15. </div>
  16. </template>
  17.  
  18. <script>
  19. export default {
  20. name:'Home',
  21. /* beforeDestroy() {
  22. console.log('Home组件即将被销毁了')
  23. }, */
  24. /* mounted() {
  25. console.log('Home组件挂载完毕了',this)
  26. window.homeRoute = this.$route
  27. window.homeRouter = this.$router
  28. }, */
  29. }
  30. </script>

Banner.vue

  1. <template>
  2. <div class="col-xs-offset-2 col-xs-8">
  3. <div class="page-header"><h2>Vue Router Demo</h2></div>
  4. </div>
  5. </template>
  6.  
  7. <script>
  8. export default {
  9. name:'Banner'
  10. }
  11. </script>

index.js(/src/router)

  1. // 该文件专门用于创建整个应用的路由器
  2. import VueRouter from 'vue-router'
  3. //引入组件
  4. import About from '../pages/About'
  5. import Home from '../pages/Home'
  6. import News from '../pages/News'
  7. import Message from '../pages/Message'
  8. import Detail from '../pages/Detail'
  9.  
  10. //创建并暴露一个路由器
  11. export default new VueRouter({
  12. routes:[
  13. {
  14. path:'/about',
  15. component:About
  16. },
  17. {
  18. path:'/home',
  19. component:Home,
  20. children:[
  21. {
  22. path:'news',
  23. component:News,
  24. },
  25. {
  26. path:'message',
  27. component:Message,
  28. children:[
  29. {
  30. path:'detail',
  31. component:Detail,
  32. }
  33. ]
  34. }
  35. ]
  36. }
  37. ]
  38. })

App.vue

  1. <template>
  2. <div>
  3. <div class="row">
  4. <Banner/>
  5. </div>
  6. <div class="row">
  7. <div class="col-xs-2 col-xs-offset-2">
  8. <div class="list-group">
  9. <!-- 原始html中我们使用a标签实现页面的跳转 -->
  10. <!-- <a class="list-group-item active" href="./about.html">About</a> -->
  11. <!-- <a class="list-group-item" href="./home.html">Home</a> -->
  12.  
  13. <!-- Vue中借助router-link标签实现路由的切换 -->
  14. <router-link class="list-group-item" active-class="active" to="/about">About</router-link>
  15. <router-link class="list-group-item" active-class="active" to="/home">Home</router-link>
  16. </div>
  17. </div>
  18. <div class="col-xs-6">
  19. <div class="panel">
  20. <div class="panel-body">
  21. <!-- 指定组件的呈现位置 -->
  22. <router-view></router-view>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. </template>
  29.  
  30. <script>
  31. import Banner from './components/Banner'
  32. export default {
  33. name:'App',
  34. components:{Banner}
  35. }
  36. </script>

路由的query参数(传参)的更多相关文章

  1. Angular:路由的配置、传参以及跳转

    ①路由的配置 1.首先用脚手架新建一个项目,在路由配置时选择yes 2.用ng g component创建组件 3.在src/app/app-routing.module.ts中配置路由 import ...

  2. vue 路由跳转,传参

    一.直接跳转 //js1.this.$router.push('/ad_new') //html 2.<router-link to="/ad_check"> < ...

  3. vue 和 react 路由跳转和传参

                      react  1 .跳转方式加传参 this.props.history.push({ //地址 pathname: '/film/Details', //路由传参 ...

  4. vue3.x版本路由router跳转+传参

    显示传参模式 get import { useRouter } from 'vue-router'; const router = useRouter(); let skipEdit = (key: ...

  5. char *与const char **函数参数传参问题

    传参方法 ## 函数 extern void f2 ( const char ** ccc ); const char ch = 'X'; char * ch_ptr; const char ** c ...

  6. 【微信小程序】Page页面跳转(路由/返回)并传参

    页面跳转的方法参考官方文档: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/route.html 问题:使用wx.na ...

  7. C/C++语言中的函数参数传参三种对比

    学了很长时间C/C++有时指针方面还是有点乱. 希望大神发现如果下面有不对的地方请指出.我发现之所以我乱就是因为中文表述不准确的问题,比如 ,地址值和地址 #include <iostream& ...

  8. ng4 路由多参数传参以及接收

    import { Router } from '@angular/router'; constructor( private router:Router, ) { } goApplicationDet ...

  9. C#——WebApi 接口参数传参详解

    本篇打算通过get.post.put.delete四种请求方式分别谈谈基础类型(包括int/string/datetime等).实体.数组等类型的参数如何传递. 一.get请求 对于取数据,我们使用最 ...

随机推荐

  1. Net6 DI源码分析Part4 CallSiteFactory ServiceCallSite

    Net6 CallSiteFactory ServiceCallSite, CallSiteChain abstract class ServiceCallSite ServiceCallSite是个 ...

  2. python小白记录二 ——自动化测试selenium中配置浏览器

    1.根据不同的浏览器 下载不同的驱动,下面是谷歌的驱动 下载地址:ChromeDriver - WebDriver for Chrome - Downloads (chromium.org)     ...

  3. 帆软报表(finereport) 组合地图 保持系列名和值居中

    自定义JavaScript代码,使用HTML解析 function(){ var name = this.name; var total = '<div style="width:10 ...

  4. 流程控制( if while )

    目录 流程控制 必知必会 分支结构 if 1.单 if 分支结构 2. if与else连用 3. if, else和 elif if 判断之嵌套 if 练习题 while 循环 while+break ...

  5. 《PHP程序员面试笔试宝典》——在被企业拒绝后是否可以再申请?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 很多企业为了能够在一年一度的招聘季节中,提前将优秀的程序员锁定到自己的麾下,往往会先下手为强.他们通常采取的措施有两种: ...

  6. 「codeforces - 1284G」Seollal

    给定 \(n\times m\) 的网格图,有些格子有障碍,无障碍且相邻的格子之间连边形成图.保证 \((1, 1)\) 无障碍,保证无障碍格子连通. 将网格图黑白染色,相邻格子颜色不同,\((1, ...

  7. leetcode算法1.两数之和

    哈喽!大家好,我是[学无止境小奇],一位热爱分享各种技术的博主! [学无止境小奇]的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过. [学无止 ...

  8. SpringBoot 自定义参数类型转换convert

    创建一个配置类.使用 @bean注入到容器中 @Bean public WebMvcConfigurer webMvcConfigurer(){ /** * 实现自定义的addConverter */ ...

  9. java宝典笔记(一)

    第四章java基础知识 4.1基本概念 一.java优点 1.面向对象(封装.继承.多态) 2.可移植性.平台无关,一次编译,到处运行.Windows,Linux,macos等.java为解释性语言, ...

  10. AfterLogicWebMail CSRF导致密码可修改

    实验目的 了解CSRF漏洞导致Webmail管理员帐号密码任意被修改 实验原理 当我们打开或者登陆某个网站的时候,浏览器与网站所存放的服务器将会产生一个会话(cookies),在这个会话没有结束时,你 ...