目录
01手写vueRouter3.x
vue-Router v3.x是针对vue2项目 v4.x是针对vue3项目的
要想配置路由 必须先下载路由模块(正常是下载好的 我们在自己搭建项目的时候选择vue-Router的情况下就是下载好的)
npm i vue-router@版本号 --save(3.5.4)
--save 是把当前下载的模块登记到package.json的依赖里面(要不然的话别人拿到之后下载依赖没有vueRtouer就报错)
-g 表示全局安装到计算机c盘
下载模块的时候如果是vue2项目记得要加版本号 不然就是安装最新版 是适配vue3项目的
vue-router搭建步骤(v3.x)
1 下载vue-router模块 npm i vue-router@3.5.4 --save
2 在src文件夹里面新建router文件夹在这个文件夹里面新建index.js
3 import Vue from 'vue'
4 import VueRouter from 'vue-router'
5 Vue.use(VueRouter)
6 new VueRouter(options) 进行路由表的配置
7 options路由表的配置对象常用的属性:
routes 是一个数组 数组里面的每一个对象都是一个路由对象
路由对象常用属性:
{
path:'' 目前暂时所有路径都以/开头(表示都是首页同级的页面) 页面跳转的路径
component:当前路由对象渲染的组件对象
name:''路由的name值 以后跳转方式其中一种是根据name跳转的 也算是当前路由的唯一标识
meta:{当前路由的初始数据配置 可以在组件里面通过this.$route.mate.属性名获取
}
}
8 把当前创建出来的路由表对象 对外暴露 export default router
9 在main.js引入router对象 并注册到Vue的options对象里面
new Vue({
render: h => h(App),
router,//注册路由表对象到全局Vue对象中 让整个项目具有路由的功能
}).$mount('#app')
10 最后把router-view组件 定义在app.vue组件的template里面
表示路由对应的path渲染的组件最终呈现的位置
02 路由跳转的两种方式
1 静态跳转
定义router-link组件 通过to属性关联path路径 用户点击跳转
tag属性 表示是让router-link渲染成指定标签名(vue-router4.x中不推荐这种写法换成新写法)
当前哪一个路由对应的页面正在呈现 那么当前路由对应的router-link标签就会生效两个类名
router-link-active(父路由也会同时生效)
router-link--exact-active(单单指当前路由)
2 动态跳转
在js代码中通过
this.$router.push/replace方法进行跳转
this.$router.push('/路由对应的path地址')
或者
this.$router.push('路由的name值') 比如有些路径/aa/bb/qq/ww/kk比较长 所以匹配name跳转更简单
replace用法和push一模一样
03 子路由的配置
子路由的配置:
1 在要配置子路由的路由对象里面(routes数组里面的对象)
2 定义children属性 值是一个数组
3 数组每一个对象都是一个子路由对象
4 子路由对象一样具有path name conponents 等属性
5 子路由配置完毕之后需要把子路由的router-view组件写到父路由的template里面去
子路由的path路径写法有两种:
1 带/开头的路径
实际跳转时 这个路径和/首页路径同级 直接/路径跳转不需要再前面加父路由路径
2 不带/开头的路径
那么实际跳转时 /父路由的路径/子路由path路径 必须带上父路由的路径(推荐使用)
因为路径结构清新 缺点书写麻烦
父路由配置默认显示的子路由:
父路由对象添加一个属性
redirect:'子路由录屏' 重定向到子路由页面