冇事来学系--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>


目录
相关文章
|
24天前
|
JavaScript 前端开发 开发者
Vue.js 框架大揭秘:响应式系统、组件化与路由管理,震撼你的前端世界!
【8月更文挑战第27天】Vue.js是一款备受欢迎的前端JavaScript框架,以简洁、灵活和高效著称。本文将从三个方面深入探讨Vue.js:响应式系统、组件化及路由管理。响应式系统为Vue.js的核心特性,能自动追踪数据变动并更新视图。例如,通过简单示例代码展示其响应式特性:`{{ message }}`,当`message`值改变,页面随之自动更新。此外,Vue.js支持组件化设计,允许将复杂界面拆分为独立且可复用的组件,提高代码可维护性和扩展性。如创建一个包含标题与内容的简单组件,并在其他页面中重复利用。
46 3
|
22天前
|
JavaScript API
vue 批量自动引入并注册组件或路由
vue 批量自动引入并注册组件或路由
|
25天前
|
缓存 JavaScript
vue的多路由项目开发,您还在手动拼接路由名?
【8月更文挑战第20天】vue的多路由项目开发,您还在手动拼接路由名?
43 1
vue的多路由项目开发,您还在手动拼接路由名?
|
1月前
|
JavaScript
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
这篇文章详细介绍了Vue路由中的query参数、命名路由、params参数以及props配置的使用方式,并通过实际项目案例展示了它们在开发中的应用和测试结果,同时解释了`<router-link>`的`replace`属性如何影响浏览器历史记录。
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
|
1月前
|
缓存 JavaScript 数据安全/隐私保护
Vue学习之--------路由守卫(2022/9/6)
这篇文章详细介绍了Vue路由守卫的概念和应用,包括全局守卫、独享守卫和组件内守卫的实现方法,并通过实际代码示例和测试效果展示了如何对路由进行权限控制,以及Vue路由器的两种工作模式:hash模式和history模式。
Vue学习之--------路由守卫(2022/9/6)
|
1月前
|
存储 JavaScript 前端开发
Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
这篇文章是关于Vue-router路由的基本使用教程,涵盖了安装配置、应用插件、编写路由规则、实现页面跳转和高亮显示,以及一些使用中的注意点和项目实际应用案例。
Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
|
1月前
|
缓存 JavaScript
Vue学习之--------多级路由的使用(2)(2022/9/5)
这篇文章介绍了在Vue中实现多级路由缓存的方法,包括在路由配置中添加meta属性以启用缓存,使用keep-alive组件包裹需要缓存的视图,以及在Vuex中管理缓存视图列表的逻辑。
Vue学习之--------多级路由的使用(2)(2022/9/5)
|
1月前
|
JavaScript 前端开发 搜索推荐
Vue 路由的hash模式和history模式有什么区别?
在Vue.js框架中,路由管理是单页面应用(SPA)不可或缺的功能。Vue 路由提供了两种模式:hash模式和history模式,这两种模式主要负责处理URL的变更而无需重新加载整个页面,实现前端路由的功能。
96 19
|
29天前
|
JavaScript API
vue 批量自动引入并注册组件或路由等等
vue 批量自动引入并注册组件或路由等等
|
1月前
|
JavaScript
Vue中router路由的使用、router-link的使用(在项目中的实际运用方式)
这篇文章介绍了Vue中router路由和router-link的使用方式,包括router配置、router-link在模板中的使用,以及实现的导航菜单和页面路由效果。
Vue中router路由的使用、router-link的使用(在项目中的实际运用方式)