ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue中对动态路由的理解,定义以及如何获取传递过来的动态参数

2022-07-09 09:00:32  阅读:148  来源: 互联网

标签:Vue 方式 params query router 动态 id 路由


一、动态路由的理解
动态路由 就是把匹配某种模式下的路由映射到同一个组件中,其实本质就是通过url进行传参,比如说:有一个商Goods的组件,我们需要让不同的商品id都映射到这个组件中,此时就,需要用到动态路由了。
二、动态路由的配置
可以通过两种方式来传递动态参数
1.params
2.query
以上代码的演示都是在history的路由模式下
params方式 传参
配置路由的方式,使用冒号:绑定动态参数
//index.js中配置路由信息
const routes=[{
path:'/godds/:id',
components:Goods
}]
路由跳转是,分为:
1.使用router-link方式实现路由跳转
此种方式下,一可以使用字符串,在路径后面直接跟上你对应的值,如:
App.vue

点击查看代码
 <template>
    <div id="app">
	<router-link :to='/goods/'+id">商品</router-link>
	<router-view/>
	</div>
   </template>
   <script>
   export default{
     name:'App',
	 data(){
	 return {
	 id:'001'
	 }
	 }
   }
   </script>
二、可以使用对象的方式,如: ![image](https://www.icode9.com/i/l/?n=22&i=blog/2821749/202207/2821749-20220709075730169-244798602.png) 注意: 1.params 方法中,to属性使用对象的方式,必须由name属性引入路由,不能用path. 2.params方法传参时,属性名必须跟配置路由时的动态参数名一致,否则报错 使用$router的方式进行路由 的跳转 方法一1, this.$router.push('/goods/'+this.goodsId) 方法2, this.$router.push({ name:'goods', params:{ id:this.goodsId } }) }) params方式的传参,对应的传参后的url地址如下所示 localhost:8080/goods/001 获取参数的方式 $router.params.如本例中想要获取id的值,对应代码为 $router.params.id query方式的传参 配置路由时,普通配置即可,即原来怎么配置路由,现在就怎么配置路由, const routes=[{ path:'/goods', name:'goods' component:Goods }] 路由挑转时,分为 1.使用router-link方式实现路由跳转 query传参的方式只可以通过对象,不可以使用字符传 商品 2.使用$router的方式进行路由的跳转 this.$router.push({ path:'/goods', query:{ id:this.goodsId } })
 this.$router.push({
 path:'goods',
 query:{
 id:this.goodsId
 }
 })
 query方式的传参,赌赢传参后的url地址显示为
 localhost:8080/goods?id=001
 
 注意:query方式的传参,query对象里面的属性名可以随便起名,不像params方式传参时受限
 同时,此种方式下路由的引入既可以使用path属性,也可以使用name属性
 获取参数的方式
 $router.query.如本例中想要获取 id值
 $route.query.id
 
 总之,千万要注意:

(1)、params方式路由的引入只能用name,query方式路由的引入可以用name和path。
(2)、路由跳转使用 “router”;获取参数使用“route”

标签:Vue,方式,params,query,router,动态,id,路由
来源: https://www.cnblogs.com/zmh114712318/p/16460125.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有