冇事来学系--Vue2.0中命名路由和路由的query和params

简介: 命名路由在设置路由规则的时候,可以给路由指定一个name属性。作用:可以简化路由的跳转

命名路由


在设置路由规则的时候,可以给路由指定一个name属性。

作用:可以简化路由的跳转

  1. 给路由命名
// 在src/router/index.js中
  export default new VueRouter({
    routes:[
      {
        path: '/demo',    
        component: Demo, 
        children: [
          {
            path: 'test', 
            component: Test,
            children:[
              {
                name: 'hello',      // 设置name属性给路由命名
                path:'welcome',
                component: Hello
              }
            ]
          }
        ]
      }      
    ]
  })


  1. 简化路由连接跳转
<!-- 简化前,需要写完整的路径 -->
<router-link to="/demo/test/welcome">点我跳转</router-link>
<!-- 简化后,直接通过名字跳转 -->
<router-link :to="{name: 'hello'}">点我跳转</router-link>
<!-- 配合参数传递的写法 -->
<router-link :to="{
  name: 'hello',
  query: {
    id: '666',
    title: '你好'              
  }  
}">
</router-link>


query参数项


在使用路由连接的时候可以通过query选项传递参数,从而实现动态改变路由组件数据的需求

下面的代码将由一个组件动态的展示三个消息

// 在Message组件中
<template>
  <div>
    <ul>
      <li v-for="m in messsageList" :key="m.id">
        <!-- 点击路由链接跳转并携带query参数,采用对象形式的写法 -->
        <!-- 注意要使用v-bind动态绑定,这样属性值会以js表达式的形式去解析 -->   
        <router-link 
          :to="{
                  path:'/home/message/detail',
                  query: {
                    id: m.id,
                    title: m.title
                  }
          }">
          <!-- 通过v-for中的形参m,动态的指定消息的id和内容 -->
          {{m.title}}
        </router-link>
      </li>
    </ul>
    <hr>
    <router-view></router-view>
  </div>
</template>
<script>
  export default {
    name: 'Message',
    data(){
      return {
        messageList:[
          {id='001', title='消息1'},
          {id='002', title='消息2'},
          {id='003', title='消息3'}
        ]
      }
    }
  }
</script>


// 在Detail组件中
<template>
  <div>
    <ul>
      <!-- 通过$route.query获取到Message组件传递的数据 -->
      <li>消息编号:{{$route.query.id}}</li>
      <li>消息标题:{{$route.query.title}}</li>
    </ul>
  </div>
</template>
<script>
  export default {
    name: 'Detail'
  }
</script>



params参数项

  1. 配置路由,声明接收params参数
// src/router/index.js
export default new VueRouter({
  props:[
    {
      path: '/home', 
      component: Home,
      children: [
        {
          path: 'news',
          component: News,
          children:[
            {
              name: 'xiangqing',
              path: 'detail/:id/:title',      // 使用占位符声明接收params参数(:id和:title)
              component: Detail
            }
          ]
        }
      ]
    }
  ]
})
  1. 传递参数
// 路由连接跳转并携带参数
<router-link 
  :to="{
        name:'xiangqing',
        params: {
          id: '666',
          title:'你好'
        }
}">
  点击跳转
</router-link>

注意:路由携带params参数时,如果路由连接的to是使用对象的写法,则必须使用name来配置跳转地址,而不能使用path来配置

// 在Detail组件中
<template>
  <div>
    <ul>
      <!-- 通过$route.params获取到Message组件传递的数据 -->
      <li>消息编号:{{$route.params.id}}</li>
      <li>消息标题:{{$route.params.title}}</li>
    </ul>
  </div>
</template>
<script>
  export default {
    name: 'Detail'
  }
</script>


目录
相关文章
|
2月前
|
JavaScript 前端开发 开发者
Vue.js 框架大揭秘:响应式系统、组件化与路由管理,震撼你的前端世界!
【8月更文挑战第27天】Vue.js是一款备受欢迎的前端JavaScript框架,以简洁、灵活和高效著称。本文将从三个方面深入探讨Vue.js:响应式系统、组件化及路由管理。响应式系统为Vue.js的核心特性,能自动追踪数据变动并更新视图。例如,通过简单示例代码展示其响应式特性:`{{ message }}`,当`message`值改变,页面随之自动更新。此外,Vue.js支持组件化设计,允许将复杂界面拆分为独立且可复用的组件,提高代码可维护性和扩展性。如创建一个包含标题与内容的简单组件,并在其他页面中重复利用。
58 3
|
8天前
|
JavaScript
vue项目中使用vue-router进行路由配置及嵌套多级路由
该文章详细说明了如何在Vue项目中配置和使用vue-router进行单页面应用的路由管理,包括设置嵌套路由和实现多级路由导航的示例。
vue项目中使用vue-router进行路由配置及嵌套多级路由
|
2月前
|
JavaScript API
vue 批量自动引入并注册组件或路由
vue 批量自动引入并注册组件或路由
|
4天前
|
JavaScript
vue尚品汇商城项目-day07【51.路由懒加载】
vue尚品汇商城项目-day07【51.路由懒加载】
15 4
|
8天前
|
JavaScript 网络架构
|
11天前
|
JSON JavaScript 数据格式
Vue路由params、query参数丢失解决
该文章介绍了在Vue中使用`params`和`query`进行路由参数传递时,如何通过`sessionStorage`或`localStorage`解决参数丢失的问题。
15 2
|
11天前
|
JavaScript
Vue3基础(20)___Vue3配置错误路由重定向写法
本文介绍了Vue 3中配置错误路由重定向的正确写法,包括使用参数和自定义正则表达式来定义通配符路由。
25 0
Vue3基础(20)___Vue3配置错误路由重定向写法
|
2月前
|
缓存 JavaScript
vue的多路由项目开发,您还在手动拼接路由名?
【8月更文挑战第20天】vue的多路由项目开发,您还在手动拼接路由名?
43 1
vue的多路由项目开发,您还在手动拼接路由名?
|
2月前
|
JavaScript
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
这篇文章详细介绍了Vue路由中的query参数、命名路由、params参数以及props配置的使用方式,并通过实际项目案例展示了它们在开发中的应用和测试结果,同时解释了`<router-link>`的`replace`属性如何影响浏览器历史记录。
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
|
2月前
|
缓存 JavaScript 数据安全/隐私保护
Vue学习之--------路由守卫(2022/9/6)
这篇文章详细介绍了Vue路由守卫的概念和应用,包括全局守卫、独享守卫和组件内守卫的实现方法,并通过实际代码示例和测试效果展示了如何对路由进行权限控制,以及Vue路由器的两种工作模式:hash模式和history模式。
Vue学习之--------路由守卫(2022/9/6)
下一篇
无影云桌面