Vue-router 路由详解 多级路由的使用

简介: Vue-router 路由详解 多级路由的使用

使用的脚手架为Vue3.0,IDE为VSCode

首先引入vue路由

cnpm install vue-router --save-dev

然后我们在src目录下建立文件夹router,并创建文件index.js

项目大致结构如下

然后我们在view文件夹(新建一个)下创建文件 company.vue作为一个组件。company.vue代码如下

welcome to company

在index.js中创建路由,并引入company.vue文件。

import Vue from "vue"

import Router from "vue-router"

//引入组件

import company from "@/views/company.vue"

//路由引入

Vue.use(Router);

const router = new Router({

routes:[

{

name: "company", //路由名称

path: "/company", //路由路径

component: company //路由对应组件

},

{

path: "/", //主路由重定向至company组件

redirect: "/company"

}]

})

//将路由组件暴露出去

export default router;

如此我们就可以把company组件引入路由,那么我们要想使用company组件,还需要在main.js中引入路由

import Vue from 'vue'

import App from './App.vue'

import router from './router'

Vue.config.productionTip = false

new Vue({

router,

render: h => h(App),

}).$mount('#app')

此时我们已经引入了路由到项目中,那么该怎么让组件显示出来,显示在哪里呢?

我们需要用到,加载组件。在App.vue中此处添加代码

App.vue

Vue logo

然后让项目运行,你就可以看到如下界面,是不是很开心?

(浏览器地址栏)

(界面)

现在我们假设世界上有两家公司,一个叫苹果,一个叫华为,他们属于company组件的子组件

声明组件huawei.vue apple.vue

welcome to apple

welcome to huawei

因为它们都是公司的范围,我们将其声明为company的子组件。因此在router文件夹下index.js中代码变更如下

import Vue from "vue"

import Router from "vue-router"

//引入组件

import company from "@/views/company.vue"

import huawei from "@/views/huawei.vue"

import apple from "@/views/apple.vue"

//路由引入

Vue.use(Router);

const router = new Router({

routes:[

{

name: "company", //路由名称

path: "/company", //路由路径

component: company, //路由对应组件

children:[

{

name: "apple",

path: "apple",

component: apple

},

{

name: "huawei",

path: "huawei",

component: huawei

}

]

},

{

path: "/", //主路由重定向至company组件

redirect: "/company"

}]

})

//将路由组件暴露出去

export default router;

同时company.vue文件代码变更如下

welcome to company

华为

苹果

此时界面变成这个样子

点击华为链接

如果你说,那苹果公司还有ipad,mac,iphone产品呢。那我们改造三级路由出来

在view文件夹下新建三个组件 ipad.vue mac.vue iphone.vue。代码结构类似,此处仅放出ipad.vue的代码

welcome to ipad

index.js文件代码变化如下

import Vue from "vue"

import Router from "vue-router"

//引入组件

import company from "@/views/company.vue"

import huawei from "@/views/huawei.vue"

import mac from "@/views/mac.vue"

import apple from "@/views/apple.vue"

import ipad from "@/views/ipad.vue"

import iphone from "@/views/iphone.vue"

//路由引入

Vue.use(Router);

const router = new Router({

routes:[

{

name: "company", //路由名称

path: "/company", //路由路径

component: company, //路由对应组件

children:[

{

name: "apple",

path: "apple",

component: apple,

children: [

{

name: "mac",

path: "mac",

component: mac

},

{

name: "iphone",

path: "iphone",

component: iphone

},

{

name: "ipad",

path: "ipad",

component: ipad

},

]

},

{

name: "huawei",

path: "huawei",

component: huawei

}

]

},

{

path: "/", //主路由重定向至company组件

redirect: "/company"

}]

})

//将路由组件暴露出去

export default router;

apple.vue组件代码变化如下

welcome to Apple

iphone

ipad

mac

此时主页不会发生变化,但是当我们点击“苹果”链接,进行路由跳转的时候

点击iphone链接

iphone组件加载。

总结 这篇文章简单介绍了vue路由的引入以及二级三级路由的跳转,组件,子组件的问题。有同学可能会问:路由跳转的时候它是怎么确定跳转二级三级的呢? 很简单,我们在app.vue中加载 会加载一级路由。此时我们在app中显示的company就是app的子组件,观察company组件代码,路由的写法是 当我们点击company组件内的路由链接,vue-router发现这是跳转到company组件下的xxx组件。那么router会在index.js中company的childern数组内找到xxx组件,然后自动加载在company组件内的标签下,iphone、ipad、mac加载在apple组件下的道理一样。router会根据路由链接将组件加载到到对应组件下的标签下。

目录
相关文章
|
1天前
|
JavaScript
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
这篇文章详细介绍了Vue路由中的query参数、命名路由、params参数以及props配置的使用方式,并通过实际项目案例展示了它们在开发中的应用和测试结果,同时解释了`<router-link>`的`replace`属性如何影响浏览器历史记录。
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
|
1天前
|
存储 JavaScript 前端开发
Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
这篇文章是关于Vue-router路由的基本使用教程,涵盖了安装配置、应用插件、编写路由规则、实现页面跳转和高亮显示,以及一些使用中的注意点和项目实际应用案例。
Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
|
1天前
|
缓存 JavaScript
Vue学习之--------多级路由的使用(2)(2022/9/5)
这篇文章介绍了在Vue中实现多级路由缓存的方法,包括在路由配置中添加meta属性以启用缓存,使用keep-alive组件包裹需要缓存的视图,以及在Vuex中管理缓存视图列表的逻辑。
Vue学习之--------多级路由的使用(2)(2022/9/5)
|
10天前
|
JavaScript 前端开发 搜索推荐
Vue 路由的hash模式和history模式有什么区别?
在Vue.js框架中,路由管理是单页面应用(SPA)不可或缺的功能。Vue 路由提供了两种模式:hash模式和history模式,这两种模式主要负责处理URL的变更而无需重新加载整个页面,实现前端路由的功能。
56 19
|
5天前
|
JavaScript
Vue中router路由的使用、router-link的使用(在项目中的实际运用方式)
这篇文章介绍了Vue中router路由和router-link的使用方式,包括router配置、router-link在模板中的使用,以及实现的导航菜单和页面路由效果。
Vue中router路由的使用、router-link的使用(在项目中的实际运用方式)
|
1月前
|
JavaScript 前端开发 API
前端框架与库 - Vue.js 组件与路由
【7月更文挑战第15天】Vue.js 框架以简洁API和高效DOM更新著名,组件和路由是构建应用的关键。组件是自包含的实例,常见问题包括命名冲突、作用域混淆和状态管理。要避免这些问题,可使用命名空间、明确数据绑定和事件,以及采用Vuex管理状态。Vue Router提供声明式路由,常见挑战包括路由守卫、动态路由参数和懒加载配置。正确使用路由守卫、处理动态参数和实现代码分割能优化路由管理。提供的代码示例展示了基本组件和路由配置。
|
1月前
|
JavaScript 网络架构
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
182 0
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
|
1月前
|
JavaScript
学习和分享关于 Vue.js 的路由(vue-router)
学习和分享关于 Vue.js 的路由(vue-router)
26 2
|
1月前
|
JavaScript
vue 自动注册路由
vue 自动注册路由
23 1
|
2月前
|
JavaScript 前端开发 程序员
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
31 1