vue-router

本文详细介绍了Vue.js的路由管理库vue-router的使用,包括路由的基本概念、分类、基本配置、动态路由、命名路由、路由参数、路由守卫、以及路由器的工作模式。重点讲解了前端路由的工作原理和实际应用,帮助开发者更好地理解和掌握vue-router。
摘要由CSDN通过智能技术生成

什么是路由?

  1、一个路由 (route) 就是一组映射关系(key - value)
  2、key 为路径,value可能是 function 或 component
  3、多个路由需要路由器 (router) 进行管理
在这里插入图片描述


路由分类:前端路由、后端路由

后端路由:
    1)、理解:key是路径,value 是 function,用于处理客户端提交的请求
    ​2)、工作过程:服务器接收到一个请求时,根据请求路径找到匹配的函数来处理请求,
    ​     ​     ​  返回响应数据

前端路由:
    1)、理解:key是路径,value是组件,用于展示页面内容
    2)、工作过程:当浏览器的路径改变时,对应的组件就会显示


基本使用

1. 安装 vue-router,命令 :npm i vue-router vue2配置 vue-router@3  vue3配置 vue-router@4

2. 编写 router 配置项

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

// 引入组件
import About from '../components/About.vue';
import Home from '../components/Home.vue';

// 挂载 使用插件
Vue.use(VueRouter);

// 配置路由表,去管理一组一组的路由规则
const routes = [
 {
    	// 路由重定向
 	// 打开页面的时候, 就是一个 /
 	path: '/', 
 	// 自动切换到哪一个路由
 	redirect: '/home'
 }
 {
   
 	path: '/about',
    component: About,
  },
  {
   
    path: '/home',
    component: Home,
  },
];

// 创建一个路由器
const router = new VueRouter({
   
  routes,
});

// 将准备好的路由器暴露出去
export default router;

3. 引入 并 应用插件

// main.js
// 引入 Vue
import Vue from 'vue';
// 引入 App
import App from './App.vue';
// 引入路由器
import router from './router';

// 关闭 Vue 的生产提示
Vue.config.productionTip = false;

// 创建 Vue实例(vm)
new Vue({
   
  router,
  render: (h) => h(App),
}).$mount('#app');

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

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

<router-link
 active-class="active"
 to="/home"
>Home</router-link>

5. 指定展示位置

<!-- 指定组件的呈现位置 -->
<router-view></router-view>

几个注意点

  1. 路由组件通常存放在pages / views文件夹,一般组件通常存放在components文件夹
  2. 通过切换,“隐藏” 了的路由组件,默认是被销毁掉的,需要的时候再去挂载
  3. 每个组件都有自己的 $route属性,里面存储着自己的路由信息
  4. 整个应用只有一个 router,可以通过组件的 $router 属性获取到
在这里插入图片描述在这里插入图片描述


多级路由 (嵌套路由)

// 配置路由规则, 使用 children 配置项:

routes:[
    {
   
		path: '/about',
        component: About,
    },

    {
   
        path: '/home',
        component: Home,
        children:[ 	// 通过 children 配置项, 配置子级路由
            {
   
                // 此处可以写成完整路径 
               	// 例: /home/news
                // 或 省略父级路由 直接写子级路由
                // 例: news
               	// 但是 一定不要写成: /news
                path: 'news', 
                component: News
            }, 
            {
   
                path: 'message', // 此处一定不要成写: /message
                component: Message
            }
        ]
    }
]
<!-- 跳转(要写完整路径) -->:
	<router-link to="/home/news">News</router-link>

动态路由

不是写死的路由内容
而是由一个动态的数据决定

目的: 切换到该路由的时候携带一个信息

  • 可以再配置路由的时候, path 位置书写 /xxx/xx/:xx</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值