Vue路由之间传参,子路由设置

本文详细介绍了在Vue.js中使用params和query进行路由传参的方法,包括如何在组件中接收参数,以及如何在父组件中注册并跳转到子路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

路由传参
  1. params传参
    index.js导入组件,注册路由
    import JobMess from '@/components/JobMess'
    {
      path: '/job', //如果想在地址url上显示加上:path:'/job/:id'
      name: 'jobmess',
      component: JobMess
    },
    
    路由跳转
    <router-link :to="{name:'jobmess',params:{id:123}}" >跳转</router-link>
    
    JobMess.vue接收参数
    <template>
      <div class="row">
        <h1>{{$route.params.id}}</h1>
      </div>
    </template>
    
  2. query传参
    index.js导入组件,注册路由
    import JobMess from '@/components/JobMess'
    {
      path: '/job',
      name: 'jobmess',
      component: JobMess
    },
    
    路由跳转
    //query的内容会在url上显示
    <router-link :to="{path:'/job',query:{id:123}}" >跳转</router-link>
    
    JobMess.vue上接收参数
    <template>
      <div class="row">
        <h1>{{$route.query.id}}</h1>
      </div>
    </template>
    
注册二级路由
  1. index.js中注册

    export default new Router({
    	routes:[
    		{
          path: '/',
          name: 'index',
          component: Index,
          children:[
          {
          	path:'a1',  //注意:这里path不要加/
          	name:'child',
          	component:Child
          	}
          ]
        	},
    	]
    })
    
  2. 在父路由的组件里

    <router-link to="/index/a1 >跳转子路由</router-link>
    //注意,一定要加上才能显示
    <router-view></router-view>
    
### 修改 Vue Router 的传参方式 在 Vue Router 中有多种方法可以用于传递参数。以下是几种常见的修改和使用参数的方式。 #### 使用命名路由传递参数 通过设置 `name` 属性,可以在定义路由时赋予路径一个名称。这不仅有助于提高代码的可读性和维护性,还允许更方便地进行参数传递[^3]。 ```javascript const routes = [ { path: &#39;/user/:id&#39;, name: &#39;UserProfile&#39;, component: UserProfile, }, ]; ``` 当需要跳转到带有参数的目标页面时,可以通过对象的形式指定目标路由及其参数: ```javascript this.$router.push({ name: &#39;UserProfile&#39;, params: { id: userId } }); ``` 这种方式的好处在于即使 URL 发生变化,只要保持路由名不变,则内部链接仍然有效。 #### 动态路由匹配中的参数捕获 如果希望从URL地址栏直接获取动态部分的数据,那么可以在配置路由规则时加入冒号前缀(`:`),表示这部分内容将会被当作变量处理并自动映射至 `$route.params` 对象内[^4]。 ```javascript // 配置路由规则 { path: "/product/:productId", component: ProductDetail } ``` 此时访问 `/product/123` ,就可以利用 `this.$route.params.productId` 来得到当前产品的 ID 值 “123”。 #### 查询字符串形式的参数传输 除了上述两种基于路径片段的方式来携带信息外,还可以采用查询参数(query parameters)模式来进行跨页间的信息共享。对于一些不需要体现在URL结构里的临时状态来说尤为适用。 ```html <router-link :to="{ path: &#39;/&#39;, query: { plan: &#39;private&#39; }}">Go Home</router-link> ``` 以上代码会生成形如 `<a href="/?plan=private">Go Home</a>` 的HTML标签;而在接收端可通过 `this.$route.query.plan` 访问所附带的额外数据 "private"[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值