vue-router 路由

本文详细介绍了vue-router的使用,包括概念、基本实现、多级路由、参数传递、命名路由、路由守卫等核心内容,以及history和hash模式的区别,帮助开发者深入理解并掌握Vue.js应用中的路由管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、概念

1、SPA应用:

2、路由的理解:

二、基本实现

1、安装vue-router

2、应用插件

3、编写router配置项

4、实现切换

5、指定展示位置

三、注意事项

四、多级(嵌套)路由

五、路由的query参数

1、传递参数

2、接收参数

六、路由的params参数

1、配置路由:

2、传递参数

七、命名路由

步骤:

八、路由的props配置

九、路由的replace属性

十、编程式路由导航

1、push

2、replace

3、back、forward、go

十一、两个路由独有的生命周期钩子

十二、路由守卫

1、全局前置路由守卫

2、全局后置路由守卫

3、独享路由守卫

4、组件内路由守卫

十三、history模式和hash模式

1、history模式:

2、hash模式:

另外:


一、概念

vue中的一个插件库,专门用来实现SPA应用;

1、SPA应用:

①、单页面Web应用(single page web application,SPA);

②、整个应用只有一个完整的页面;

③、点击页面的导航链接不会刷新页面,只会进行页面的局部刷新;

④、数据需要通过ajax请求获取;

2、路由的理解:

一个路由就是一组映射关系(key - value),key为路径,value可能是functioncomponents

路由的分类:

后端路由:

①、value为function,用于处理客户端提交的请求;

②、工作过程:服务器接收到一个请求时,根据请求路径找到匹配的函数来处理请求,返回响应数据

前端路由:

①、理解value是components,用于展示页面内容

②、工作过程:当浏览器的路径改变时,对应的组件就会展示;

二、基本实现

1、安装vue-router

命令:npm i vue-router(这个是适用于vue3版本,如果是想使用适用于vue2版本的话,就需要使用npm i vue-router@3命令行)

2、应用插件

Vue.use(VueRouter)

3、编写router配置项

新建router/index.js文件

// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'

// 引入组件(路由组件一般放在pages文件夹)
import About from '../pages/About'
import Home from '../pages/Home'

// 创建并暴露一个路由器
export default new VueRouter({
    routes:[
        {
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home
        }
    ]
})

4、实现切换

<!-- Vue中借助router-link标签实现路由的切换 -->
<router-link class="list-group-item" active-class="active" to="about">About</router-link>
<router-link class="list-group-item" active-class="active" to="home">Home</router-link>

5、指定展示位置

<!-- 指定切换后组件呈现内容的位置 -->
<router-view></router-view>

三、注意事项

1、路由组件通常放在pages文件夹,而一般组件通常存放在conponents文件夹

2、切换不同的路由组件时,隐藏的路由组件本质上默认是被销毁了,需要的时候再重新挂载

3、每个组件之间共用一个router,可以通过组件的$router属性获取;

4、每个组件都有自己的$route属性,里面存储着自己的路由信息

四、多级(嵌套)路由

1、配置路由规则:使用children配置项:

router/index.js

routes:[
        // 一级路由
        {
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            // 二级路由
            children:[
                {
                    path:'news',
                    component:News
                },
                {
                    path:'message',
                    component:Message
                }
            ]
        }
    ]

2、跳转:要写完整路径

<router-link  to="/home/message">Message</router-link>

五、路由的query参数

1、传递参数

字符串写法和对象写法

<!-- 跳转路由,并携带参数:to的字符串写法 -->
<router-link :to="`/home/message/detail?id=${mes.id}&title=${mes.title}`">{
  
  {mes.title}}</router-link>
                
<!-- 跳转路由,并携带参数:to的对象写法 -->
<router-link :to="{
            path:'/home/message/detail',
            query:{
                   id:mes.id,
                   title:mes.title
     }
}">
    {
  
  {mes.title}}
</router-link>

2、接收参数

 <ul>
    <li>消息编号:{
  
  {$route.query.id}}</li>
    <li>消息标题:{
  
  {$route.query.title}}</li>
  </ul>

六、路由的params参数

1、配置路由:

申明接收使用params参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值