vue中路由的命名路由

举报
一向很安静 发表于 2022/02/28 15:58:14 2022/02/28
【摘要】 在本篇我会给大家介绍一下关于vue中路由的命名路由这是比较轻松一些的内容就是字面也是只是为路由加上个名字至于他的作用也是相当轻松就是为了简化路由的跳转的举个例子:在之前我们学过多级路由的当我们子路由超过一定数量后我们的每次使用都是相当麻烦因为要写全面,但是我们可以通过为路由添加名字的方式解决,看不在需要写完全部地址才能吃饭该路由了。```js// 该文件专门用于创建整个应用的路由器impor...

在本篇我会给大家介绍一下关于vue中路由的命名路由这是比较轻松一些的内容就是字面也是只是为路由加上个名字至于他的作用也是相当轻松就是为了简化路由的跳转的举个例子:在之前我们学过多级路由的当我们子路由超过一定数量后我们的每次使用都是相当麻烦因为要写全面,但是我们可以通过为路由添加名字的方式解决,看不在需要写完全部地址才能吃饭该路由了。

```js
// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '../pages/About'
import Home from '../pages/Home'
import News from '../pages/News'
import Message from '../pages/Message'
import Detail from '../pages/Detail'

//创建并暴露一个路由器
export default new VueRouter({
    routes:[
        {
            name:'guanyu',
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            children:[
                {
                    path:'news',
                    component:News,
                },
                {
                    path:'message',
                    component:Message,
                    children:[
                        {
                            name:'xiangqing',
                            path:'detail',
                            component:Detail,
                        }
                    ]
                }
            ]
        }
    ]
})

```
但是在路由文件中给路由添加了名字后我们就需要在使用的时候就不能在使用`<router-link to="/demo/test/welcome">跳转</router-link>`应该使用这种写法:`<router-link :to="{name:'hello'}">跳转</router-link>`

```js
<template>
    <div>
        <ul>
            <li v-for="m in messageList" :key="m.id">
                <!-- 跳转路由并携带query参数,to的字符串写法 -->
                <!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link>&nbsp;&nbsp; -->

                <!-- 跳转路由并携带query参数,to的对象写法 -->
                <router-link :to="{
                    name:'xiangqing',
                    query:{
                        id:m.id,
                        title:m.title
                    }
                }">
                    {{m.title}}
                </router-link>
            
            </li>
        </ul>
        <hr>
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name:'Message',
        data() {
            return {
                messageList:[
                    {id:'001',title:'消息001'},
                    {id:'002',title:'消息002'},
                    {id:'003',title:'消息003'}
                ]
            }
        },
    }
</script>
```


### 命名路由

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

2. 如何使用

   1. 给路由命名:

      ```js
      {
          path:'/demo',
          component:Demo,
          children:[
              {
                  path:'test',
                  component:Test,
                  children:[
                      {
                            name:'hello' //给路由命名
                          path:'welcome',
                          component:Hello,
                      }
                  ]
              }
          ]
      }
      ```

   2. 简化跳转:

      ```vue
      <!--简化前,需要写完整的路径 -->
      <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>
      ```
      
      注意:使用路由命名确实是可以使得代码量减少但是也不完全就比如只有一层路由的时候你在还不如直接path:'/about',在直接调用`<router-link to="/about">`的方式,路由命名是为了减少代码量才去用希望大家可以懂这点。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。