首页 > 其他分享 >Vue Router系列之(五)路由传参

Vue Router系列之(五)路由传参

时间:2024-02-29 20:03:43浏览次数:22  
标签:传参 Vue 跳转 参数 params 组件 Router query 路由

路由传参

如何给路由组件传递参数

点击导航区的时候将数据带给路由组件,展示区根据数据渲染组件,渲染的都是同一个组件,只不过数据不同

路由组件可以接收两种参数:query参数和params参数

这两种参数的写法与Ajax中query参数和params参数的写法是一样的

1. query参数

  1. 传递参数

    <!-- 跳转并携带query参数,to的字符串写法 -->
    <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">跳转</router-link>
    				
    <!-- 跳转并携带query参数,to的对象写法 -->
    <!-- 标准格式-->
    <router-link 
    	:to="{
    		path:'/home/message/detail',
    		query:{
    		   id:m.id,
                title:m.title
    		}
    	}"
    >跳转</router-link>
    
  2. 路由组件的模板中接收参数:

    $route.query.id
    $route.query.title
    

注:这种传递、接收参数的方式不会体现在vue-router的配置文件中

2. params参数

  1. 配置路由,声明接收params参数

    {
    	path:'/home',
    	component:Home,
    	children:[
    		{
    			path:'news',
    			component:News
    		},
    		{
    			component:Message,
    			children:[
    				{
    					name:'xiangqing',
                      	  // :id和:title是占位符
                      	  // 使用占位符声明接收params参数
                      	  // nodejs中有这种写法
    					path:'detail/:id/:title', 
    					component:Detail
    				}
    			]
    		}
    	]
    }
    
  2. 传递参数

    <!-- 跳转并携带params参数,to的字符串写法 -->
    <router-link :to="`/home/message/detail/${m.id}/${m.title}`">跳转</router-link>
    				
    <!-- 跳转并携带params参数,to的对象写法 -->
    <router-link 
    	:to="{
    		name:'xiangqing',
    		params:{
    		   id:${m.id},
                title:${m.title}
    		}
    	}"
    >跳转</router-link>
    

    特别注意:路由携带params参数时,若使用to的对象写法,则不能使用path配置项,必须使用name配置!

  3. 路由组件的模板中接收参数:

    $route.params.id
    $route.params.title
    

标签:传参,Vue,跳转,参数,params,组件,Router,query,路由
From: https://www.cnblogs.com/wzzzj/p/18040059

相关文章

  • Vue Router系列之(十一)两个新的生命周期钩子
    两个新的生命周期钩子​ 缓存路由组件和定时器一起使用时,如果进行了路由跳转,本应触发在beforeDestroy钩子中清除定时器方法,但因为缓存了路由组件,就导致原来的路由组件的beforeDestroy钩子不会被触发,定时器也就不会清除作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态......
  • Vue Router系列之(十)缓存路由组件
    缓存路由组件完善路由的技巧作用:让不展示的路由组件保持挂载,不被销毁。​ 正常情况下,进行了路由跳转后,之前的组件会被销毁,如果之前的组件中存在input框之类的表单类组件,输入的内容也就消失了,也就是说,要保证路由跳转后不销毁之前的组件具体编码://缓存的对象:并不是所有路......
  • 答应我,在vue中不要滥用watch好吗?
    前言上周五晚上8点,开开心心的等着产品验收完毕后就可以顺利上线。结果产品突然找到我说要加需求,并且维护这一块业务的同事已经下班走了,所以只有我来做。虽然内心一万头草泥马在狂奔,但是嘴里还是一口答应没问题。由于这一块业务很复杂并且我也不熟悉,加上还饿着肚子,在梳理代码逻辑......
  • Vue Router系列之(九)编程式路由导航
    编程式路由导航作用:不借助<router-link>实现路由跳转,让路由跳转更加灵活。为什么需要除了<router-link>标签之外实现路由跳转的方式?<router-link>标签最后变为<a>标签,无法实现button按钮的跳转触发路由跳转可能需要异步触发,<router-link>标签也无法实现具体编码://$ro......
  • Vue Router系列之(十二)路由守卫
    路由守卫作用:对路由进行权限控制,满足一定条件才能看到跳转到的路由组件分类:全局守卫、独享守卫、组件内守卫全局守卫://src/router/index.js//router:我们创建的路由器实例//router.beforeEach(function):每一次进行路由跳转之前都会帮我们调用我们传入的函数//全......
  • Vue CLI 系列之(十)webStorage
    webStorage【浏览器本地存储】localStorage和sessionStorage统称为webStorage1.localStorage未登录账号的情况下进行了商品搜索,搜索历史中保存了之前的搜索记录借助浏览器的本地存储可以将数据存到硬盘上,用于缓存数据通过浏览器如何查看浏览器本地存储​ 每个网站都有自己......
  • Vue CLI 系列之(十四)$nextTick
    $nextTick$nextTick这也是一个生命周期​ 如果要实现一个input框点击后进行一些数据修改的操作【这里是指能够引起Vue重新解析模板的数据修改操作,比如修改data中的数据】,然后让该input框获取焦点,该怎么做?//Item组件中有一个input输入框和一个编辑按钮,实现点击按钮后input框显......
  • Vue CLI 系列之(十三)消息订阅与发布
    消息订阅与发布【pubsub】1.理解消息订阅与发布2.原理图​ 通过报纸的订阅与发布来理解就是:A去C那订阅了报纸demo,并说明了自己的住址test,由于test是定义在A中的,而A又把test的引用提供出来了,这样C只要一调用test,自动就来到了A这,也就找到了A住的地儿,C发布test报纸时携带的内......
  • Vue CLI 系列之(十二)全局事件总线
    全局事件总线【GlobalEventBus】......
  • Vue CLI 系列之(十一)组件自定义事件
    组件自定义事件区别于js内置事件,内置事件是给html元素用的,而自定义事件是给组件用的1.给组件实例对象绑定自定义事件给组件绑定自定义事件v-on:自定义事件名="回调函数"比如:<Studentv-on:atguigu="demo"/>上面代码的含义为:由于v-on是在Student这个组件标签上,所以是给stu......