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


目录
相关文章
|
20天前
|
JavaScript
【vue】如何跳转路由到指定页面位置
【vue】如何跳转路由到指定页面位置
22 0
|
20天前
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
54 0
|
20天前
|
资源调度 JavaScript 前端开发
Vue的路由管理:VueRouter的配置和使用
【4月更文挑战第24天】VueRouter是Vue.js的官方路由管理器,用于在单页面应用中管理URL路径与组件的映射。通过安装并引入VueRouter,设置路由规则和创建router实例,可以实现不同路径下显示不同组件。主要组件包括:`&lt;router-link&gt;`用于创建导航链接,`&lt;router-view&gt;`负责渲染当前路由对应的组件。此外,VueRouter还支持编程式导航和各种高级特性,如嵌套路由、路由参数和守卫,以应对复杂路由场景。
|
20天前
|
JavaScript 数据可视化 算法
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
44 6
|
4天前
|
JavaScript 程序员 网络架构
vue路由从入门到进阶 --- 声明式导航详细教程
vue路由从入门到进阶 --- 声明式导航详细教程
vue路由从入门到进阶 --- 声明式导航详细教程
|
4天前
|
资源调度 JavaScript UED
vue路由的基础知识总结,vueRouter插件的安装与使用
vue路由的基础知识总结,vueRouter插件的安装与使用
|
11天前
|
缓存 JavaScript
一文彻底学会Vue路由
Vue Router简介,包括基本使用、嵌套路由、参数传递和路由守卫。首先,通过`npm i vue-router@3`安装,然后在`main.js`引入并应用。配置路由时,创建VueRouter实例,定义如`/home`、`/about`等路径及其对应组件。使用`&lt;router-link&gt;`进行切换,`&lt;router-view&gt;`展示组件。嵌套路由通过`children`配置多级路径,参数传递可使用`query`或`params`。路由守卫分为全局、独享和组件内三种,用于控制访问权限。
22 1
一文彻底学会Vue路由
|
19天前
|
资源调度 JavaScript 前端开发
阿珊详解Vue路由的两种模式:hash模式与history模式
阿珊详解Vue路由的两种模式:hash模式与history模式
|
20天前
|
JavaScript
vue中watch监听路由传来的参数变化问题
vue中watch监听路由传来的参数变化问题
12 0
|
20天前
|
缓存 JavaScript
在 Vue 组件中使用计算属性和侦听器来响应路由变化
【5月更文挑战第8天】Vue Router 中,计算属性和侦听器常用于根据路由变化更新组件状态。计算属性缓存依赖,当路由参数改变时自动更新,如示例中的 `userId`。侦听器则监听 `$route` 变化,执行相应操作,例如在 `currentUserId` 示例中响应 `userId` 更新。计算属性适合简单变化,而异步操作或复杂场景可选用侦听器。Vue 3 中,`watchEffect` 减少了部分侦听场景的复杂性。总之,它们用于组件内部响应路由变化,而非直接处理路由逻辑。
20 4