Vue-路由

本文详细介绍了Vue Router在SPA应用中的作用,包括如何配置和使用基本路由、实现多级嵌套路由以及两种路由参数传递方式(query和params)。通过实例展示了在Vue2中安装和设置Vue Router的步骤,以及如何在组件间进行导航和数据传递。
摘要由CSDN通过智能技术生成

1.vue-router的理解
vue的一个插件库,专门用来实现SPA(single page web application)应用
2.对SPA应用的理解
a.整个应用只有一个完整的页面
b.点击页面中的导航链接不会刷新页面,只会做页面的局部更新
c.数据需要通过ajax请求获取
3.什么是路由
路由就是一组映射关系(key-value)
key为路径,value的值可能是function或component
(1)要实现以下最简单的SPA应用效果:
在这里插入图片描述在这里插入图片描述
步骤:
1.安装vue-router,命令:npm i vue-router(@3)
备注:2022年2月7日以后,vue-router的默认版本为4,而且vue-router4只能在vue3中使用,vue-router3才能在vue2中使用,可用@3来指定3版本
2.应用路由插件:Vue.use(vueRouter)
3.编写router配置项:

//引入vueRouter
import vueRouter from 'vue-router'

//引入路由组件
import home from '../pages/Home'
import about from '../pages/About'

//创建router实例对象,去管理一组一组的路由规则
export default new vueRouter({
    routes: [{
            path: '/home',
            component: home,
        },
        {
            path: '/about',
            component: about,
        }
    ]
});

4.实现切换(active-class可配置高亮样式)

 <router-link class='list-group-item' active-class="active" to='/home'>Home</router-link> 

5.指定展示位置

<router-view></router-view>

(2)实现多级路由(具有嵌套关系): 在这里插入图片描述其实只要掌握了之前所学到的最基本的路由关系,那么多级路由的实现其实很简单,就是一个套娃的过程。1.先准备好两个组件:News.vue和Message.vue2.在路由配置项中,添加代码:

 routes: [{
            path: '/home',
            component: home,
            children: [{
                    path: 'message',
                    component: message
                },
                {
                    path: 'news',
                    component: news
                }
            ]
        },

要特别注意的是:children配置项中的path属性,不需要再携带"/",因为vue-router它自动帮我们添加了。
3.在home组件中,添加代码:

  <ul class="nav nav-pills nav-stacked ">
           <router-link class='list-group-item' active-class="active" to='/home/news'>News</router-link>
           <router-link class='list-group-item' active-class="active" to='/home/message'>Message</router-link>
</ul>

要特别注意的是:to的路径要把”/home”携带上,我第一次些的时候只写成"to=‘/news’ ",这样会造成路由器找不到这个路径(因为路由器在匹配的时候先匹配最外面的路由)。
(3)路由传参:
路由传参有两种方式:
a.通过query的方式:直接在url里面加?来携带参数,并且参数之间用&符号隔开
b.通过params的方式:直接在url后面携带’/'来携带参数,但是这种方法需要在路由配置中配置path: ‘details/:id/:name’

为了使得传参的过程更加清楚,我们再加入一层套娃,就是在message组件下又加了一个组件details来存放信息。
在这里插入图片描述
但是此时我们不利用给message中的消息001、消息002分别都再次添加路由。而是点击消息001或者消息002时,都把信息展示到同一个detail组件中。只是利用传递参数的方式,让details根据不同的点击而展示不同的内容。
首先先修改router配置项:

routes: [{
            path: '/home',
            component: home,
            children: [{
                    path: 'message',
                    component: message,
                    children: [{
                        path: 'details',
                        component: details,
                    }]
                },
    

从上面的配置可以看到,现实第一层home,然后进入到message,然后又进入到details,总共实现了三层的嵌套关系。

a.query方式实现传参:
a.1:跳转路由并携带query参数,to的字符串写法
Message组件中添加代码:

 <ul>
      <li v-for='m in messageArr' :key="m.id">
          <router-link :to="`/home/message/details?id=${m.id}&name=${m.name}`">  {{m.name}}</router-link></li>
  </ul>

a.2:跳转路由并携带query参数,to的对象写法

<router-link :to="{
              path:'/home/message/details',
              query:{
                 id:m.id,
                 name:m.id,
               }

          }">{{m.name}}
</router-link>

Details组件中接收到参数:

<div>
      <ul>
          <li>消息编号:{{$route.query.id}}</li>
          <li>消息内容:{{$route.query.name}}</li>
      </ul>
  </div>

b.通过params的方式:
b.1跳转路由并携带params参数,to的字符串写法
发送:

  <router-link :to="`/home/message/details/${m.id}/${m.name}`">{{m.name}}</router-link>

b.2跳转路由并携带params参数,to的对象写法

<router-link :to="{
              name:'xijie',
              params:{
                 id:m.id,
                 name:m.id,
               }
          }">{{m.name}}
</router-link>

需要注意的是:如果要使用params方式来携带参数,并且是to的对象写法时,to中的配置项不能使用path,而只能用name
接收:

 <ul>
          <li>消息编号:{{$route.params.id}}</li>
          <li>消息内容:{{$route.params.name}}</li>
</ul>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Router 是 Vue.js 官方的路由管理器,用于实现前端路由跳转。要进行路由跳转,你需要完成以下几个步骤: 1. 首先,确保你的项目中已经安装了 Vue Router。可以通过 npm 或 yarn 进行安装: ```bash npm install vue-router ``` 或 ```bash yarn add vue-router ``` 2. 在你的 Vue 项目的入口文件(一般是 `main.js`)中引入 Vue Router,并使用它: ```javascript import Vue from 'vue' import VueRouter from 'vue-router' // 导入你的路由配置文件 import routes from './routes' Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', // 可选值为 'hash' 或 'history',默认为 'hash' routes // 路由配置 }) new Vue({ router, // 注入路由实例 render: h => h(App) }).$mount('#app') ``` 3. 创建一个路由配置文件(例如 `routes.js`),在该文件中定义路由的映射关系: ```javascript import Home from './views/Home.vue' import About from './views/About.vue' const routes = [ { path: '/', name: 'home', component: Home }, { path: '/about', name: 'about', component: About } ] export default routes ``` 4. 在你的 Vue 组件中使用 `<router-link>` 标签或 `$router` 对象进行路由跳转。下面是几个常用的示例: - 使用 `<router-link>` 标签实现路由跳转: ```html <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> ``` - 使用 `$router` 对象编程式地进行路由跳转: ```javascript // 在某个方法中跳转到指定路由 this.$router.push('/') // 跳转到根路径 this.$router.push('/about') // 跳转到 /about 路径 // 在某个方法中通过路由名称跳转 this.$router.push({ name: 'home' }) // 跳转到名称为 home 的路由 ``` 这样,你就可以通过 Vue Router 实现路由跳转了。请注意,以上只是一个简单的示例,你可以根据实际需要配置更多高级功能,例如路由参数、嵌套路由等。详情请参考 Vue Router 的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值