路由的query参数(传参)
路由组件不会在组件里面放自己组件标签。
案例使用嵌套组件的,但是在Message组件下新增了组件Detail.vue
index.html
//引入bootstrap.css
<link rel="stylesheet" href="<%= BASE_URL %>css/bootstrp.css">
main.js
- //引入Vue
- import Vue from 'vue'
- //引入App
- import App from './App.vue'
- //引入VueRouter
- import VueRouter from 'vue-router'
- //引入路由器
- import router from './router'
- //关闭Vue的生产提示
- Vue.config.productionTip = false
- //应用插件
- Vue.use(VueRouter)
- //创建vm
- new Vue({
- el:'#app',
- render: h => h(App),
- router:router
- })
About.vue
- <template>
- <h2>我是About的内容</h2>
- </template>
- <script>
- export default {
- name:'About'
- }
- </script>
Messages.vue
- <template>
- <div>
- <ul>
- <li v-for="m in messageList" :key="m.id">
- <!-- 跳转路由并携带query参数,to的字符串写法 -->
- <!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link> -->
- <!-- 跳转路由并携带query参数,to的对象写法 -->
- <router-link :to="{
- path:'/home/message/detail',
- query:{
- id:m.id,
- title:m.title
- }
- }">
- {{m.title}}
- </router-link>
- </li>
- </ul>
- <hr>
- <router-view></router-view>
- </div>
- </template>
- <script>
- export default {
- name:'Message',
- data() {
- return {
- messageList:[
- {id:'001',title:'消息001'},
- {id:'002',title:'消息002'},
- {id:'003',title:'消息003'}
- ]
- }
- },
- }
- </script>
Detail.vue
- <template>
- <ul>
- <li>消息编号:{{$route.query.id}}</li>
- <li>消息标题:{{$route.query.title}}</li>
- </ul>
- </template>
- <script>
- export default {
- name:'Detail',
- mounted() {
- console.log(this.$route)
- },
- }
- </script>
News.vue
- <template>
- <ul>
- <li>news001</li>
- <li>news002</li>
- <li>news003</li>
- </ul>
- </template>
- <script>
- export default {
- name:'News'
- }
- </script>
Home.vue
- <template>
- <div>
- <h2>Home组件内容</h2>
- <div>
- <ul class="nav nav-tabs">
- <li>
- <router-link class="list-group-item" active-class="active" to="/home/news">News</router-link>
- </li>
- <li>
- <router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link>
- </li>
- </ul>
- <router-view></router-view>
- </div>
- </div>
- </template>
- <script>
- export default {
- name:'Home',
- /* beforeDestroy() {
- console.log('Home组件即将被销毁了')
- }, */
- /* mounted() {
- console.log('Home组件挂载完毕了',this)
- window.homeRoute = this.$route
- window.homeRouter = this.$router
- }, */
- }
- </script>
Banner.vue
- <template>
- <div class="col-xs-offset-2 col-xs-8">
- <div class="page-header"><h2>Vue Router Demo</h2></div>
- </div>
- </template>
- <script>
- export default {
- name:'Banner'
- }
- </script>
index.js(/src/router)
- // 该文件专门用于创建整个应用的路由器
- import VueRouter from 'vue-router'
- //引入组件
- import About from '../pages/About'
- import Home from '../pages/Home'
- import News from '../pages/News'
- import Message from '../pages/Message'
- import Detail from '../pages/Detail'
- //创建并暴露一个路由器
- export default new VueRouter({
- routes:[
- {
- path:'/about',
- component:About
- },
- {
- path:'/home',
- component:Home,
- children:[
- {
- path:'news',
- component:News,
- },
- {
- path:'message',
- component:Message,
- children:[
- {
- path:'detail',
- component:Detail,
- }
- ]
- }
- ]
- }
- ]
- })
App.vue
- <template>
- <div>
- <div class="row">
- <Banner/>
- </div>
- <div class="row">
- <div class="col-xs-2 col-xs-offset-2">
- <div class="list-group">
- <!-- 原始html中我们使用a标签实现页面的跳转 -->
- <!-- <a class="list-group-item active" href="./about.html">About</a> -->
- <!-- <a class="list-group-item" href="./home.html">Home</a> -->
- <!-- Vue中借助router-link标签实现路由的切换 -->
- <router-link class="list-group-item" active-class="active" to="/about">About</router-link>
- <router-link class="list-group-item" active-class="active" to="/home">Home</router-link>
- </div>
- </div>
- <div class="col-xs-6">
- <div class="panel">
- <div class="panel-body">
- <!-- 指定组件的呈现位置 -->
- <router-view></router-view>
- </div>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- import Banner from './components/Banner'
- export default {
- name:'App',
- components:{Banner}
- }
- </script>
路由的query参数(传参)的更多相关文章
- Angular:路由的配置、传参以及跳转
①路由的配置 1.首先用脚手架新建一个项目,在路由配置时选择yes 2.用ng g component创建组件 3.在src/app/app-routing.module.ts中配置路由 import ...
- vue 路由跳转,传参
一.直接跳转 //js1.this.$router.push('/ad_new') //html 2.<router-link to="/ad_check"> < ...
- vue 和 react 路由跳转和传参
react 1 .跳转方式加传参 this.props.history.push({ //地址 pathname: '/film/Details', //路由传参 ...
- vue3.x版本路由router跳转+传参
显示传参模式 get import { useRouter } from 'vue-router'; const router = useRouter(); let skipEdit = (key: ...
- char *与const char **函数参数传参问题
传参方法 ## 函数 extern void f2 ( const char ** ccc ); const char ch = 'X'; char * ch_ptr; const char ** c ...
- 【微信小程序】Page页面跳转(路由/返回)并传参
页面跳转的方法参考官方文档: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/route.html 问题:使用wx.na ...
- C/C++语言中的函数参数传参三种对比
学了很长时间C/C++有时指针方面还是有点乱. 希望大神发现如果下面有不对的地方请指出.我发现之所以我乱就是因为中文表述不准确的问题,比如 ,地址值和地址 #include <iostream& ...
- ng4 路由多参数传参以及接收
import { Router } from '@angular/router'; constructor( private router:Router, ) { } goApplicationDet ...
- C#——WebApi 接口参数传参详解
本篇打算通过get.post.put.delete四种请求方式分别谈谈基础类型(包括int/string/datetime等).实体.数组等类型的参数如何传递. 一.get请求 对于取数据,我们使用最 ...
随机推荐
- Net6 DI源码分析Part4 CallSiteFactory ServiceCallSite
Net6 CallSiteFactory ServiceCallSite, CallSiteChain abstract class ServiceCallSite ServiceCallSite是个 ...
- python小白记录二 ——自动化测试selenium中配置浏览器
1.根据不同的浏览器 下载不同的驱动,下面是谷歌的驱动 下载地址:ChromeDriver - WebDriver for Chrome - Downloads (chromium.org) ...
- 帆软报表(finereport) 组合地图 保持系列名和值居中
自定义JavaScript代码,使用HTML解析 function(){ var name = this.name; var total = '<div style="width:10 ...
- 流程控制( if while )
目录 流程控制 必知必会 分支结构 if 1.单 if 分支结构 2. if与else连用 3. if, else和 elif if 判断之嵌套 if 练习题 while 循环 while+break ...
- 《PHP程序员面试笔试宝典》——在被企业拒绝后是否可以再申请?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 很多企业为了能够在一年一度的招聘季节中,提前将优秀的程序员锁定到自己的麾下,往往会先下手为强.他们通常采取的措施有两种: ...
- 「codeforces - 1284G」Seollal
给定 \(n\times m\) 的网格图,有些格子有障碍,无障碍且相邻的格子之间连边形成图.保证 \((1, 1)\) 无障碍,保证无障碍格子连通. 将网格图黑白染色,相邻格子颜色不同,\((1, ...
- leetcode算法1.两数之和
哈喽!大家好,我是[学无止境小奇],一位热爱分享各种技术的博主! [学无止境小奇]的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过. [学无止 ...
- SpringBoot 自定义参数类型转换convert
创建一个配置类.使用 @bean注入到容器中 @Bean public WebMvcConfigurer webMvcConfigurer(){ /** * 实现自定义的addConverter */ ...
- java宝典笔记(一)
第四章java基础知识 4.1基本概念 一.java优点 1.面向对象(封装.继承.多态) 2.可移植性.平台无关,一次编译,到处运行.Windows,Linux,macos等.java为解释性语言, ...
- AfterLogicWebMail CSRF导致密码可修改
实验目的 了解CSRF漏洞导致Webmail管理员帐号密码任意被修改 实验原理 当我们打开或者登陆某个网站的时候,浏览器与网站所存放的服务器将会产生一个会话(cookies),在这个会话没有结束时,你 ...