首页 > 其他分享 >(四十三)Vue Router之嵌套路由

(四十三)Vue Router之嵌套路由

时间:2024-06-20 15:59:04浏览次数:12  
标签:Vue 路径 component 嵌套 path Router 路由

文章目录

上一篇:(四十二)Vue之路由及其基本使用Vue Router

什么是嵌套路由

实际生活中的应用界面,有可能由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件,例如:

/user/foo/profile                     /user/foo/posts
+------------------+                  +-----------------+
| User             |                  | User            |
| +--------------+ |                  | +-------------+ |
| | Profile      | |  +------------>  | | Posts       | |
| |              | |                  | |             | |
| +--------------+ |                  | +-------------+ |
+------------------+                  +-----------------+

在Vue.js中,Vue Router提供了嵌套路由的功能,允许您在应用程序中创建层次化的路由结构。通过嵌套路由,可以在父路由下定义子路由,从而实现更复杂的页面组织和导航。

嵌套路由的使用

配置路由规则,使用children配置项配置子路由,children接收一个数组的routes配置,这里的path配置有两种形式:

  • 相对路径形式
    使用相对路径形式时,path属性的值是相对于父路由的路径。这意味着它会在父路由的路径后面添加子路径。
    例如,如果父路由的路径是/parent,子路由的path为’child’,那么完整的路径将是/parent/child。
  • 绝对路径形式
    使用绝对路径形式时,path属性的值是相对于根路径的路径。这意味着无论当前路由的路径如何,子路由都将以根路径开头。绝对路径需要在路径前面添加斜杠/。
    例如,如果根路径是’/‘,子路由的path为’/child’,那么完整的路径将是/child。
routes:[
   	{
   		path:'/page1',
   		component:Page1,
   	},
   	{
   		path:'/page2',
   		component:Page2,
   		children:[ //通过children配置子级路由
   			{
   				path:'page21', //相对路径形式
   				component:Page21
   			},
   			{
   				path:'/page2/page22',//绝对路径形式
   				component:Page22
   			}
   		]
   	}
   ]

demo

使用(四十二)Vue之路由及其基本使用Vue Router的demo继续改造,在home组件加入嵌套的组件

home组件:

<template>
  <div>
  <h2>我是Home的内容</h2>
    <div>
      <ul class="nav nav-tabs">
        <li>
          <router-link class="list-group-item" active-class="active" to="/home/news">News</router-link>
        </li>
        <li>
          <router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link>
        </li>
      </ul>
      <router-view></router-view>
    </div>
  </div>
</template>

<script>
export default {
  // eslint-disable-next-line vue/multi-word-component-names
  name: "Home",
}
</script>

<style scoped>

</style>

Message组件:

<template>
	<div>
		<ul>
			<li>
				<a href="/message1">message001</a>&nbsp;&nbsp;
			</li>
			<li>
				<a href="/message2">message002</a>&nbsp;&nbsp;
			</li>
			<li>
				<a href="/message/3">message003</a>&nbsp;&nbsp;
			</li>
		</ul>
	</div>
</template>

<script>
	export default {
    // eslint-disable-next-line vue/multi-word-component-names
		name:'Message'
	}
</script>

News组件:

<template>
	<ul>
		<li>news001</li>
		<li>news002</li>
		<li>news003</li>
	</ul>
</template>

<script>
	export default {
    // eslint-disable-next-line vue/multi-word-component-names
		name:'News'
	}
</script>

路由配置:

// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '@/pages/About'
import Home from '@/pages/Home'
import Message from '@/pages/Message'
import News from '@/pages/News'
//创建并暴露一个路由器
export default new VueRouter({
    routes:[
        {
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            children:[
                {
                    path:'news',
                    component:News,
                },
                {
                    path:'/home/message',
                    component:Message,
                }
            ]
        }
    ]
})

效果:
在这里插入图片描述
在这里插入图片描述

标签:Vue,路径,component,嵌套,path,Router,路由
From: https://blog.csdn.net/weixin_45832694/article/details/139832085

相关文章

  • 基于Vue+Nodejs实现医药商城销售系统
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助收藏点赞不迷路 ......
  • Vue 3 + Element Plus实现PC和移动端兼容的技术探讨
    在现代Web开发中,实现PC端和移动端的兼容性已经成为一个必备的技能。Vue3作为一款流行的前端框架,结合ElementPlus这个优秀的UI组件库,为我们提供了丰富的工具和解决方案。在本文中,我们将探讨如何使用Vue3和ElementPlus来实现PC和移动端的兼容性,并结合vh、vw等单位实现响应......
  • uniapp vue3 虚拟下拉滚动
    下面是vue3的写法  如果想查看vue2的写法  请移步至github链接   https://github.com/Arvin-Cui/vue-virtual-scroll/blob/master/pages/index/index.vue1.index.vue  index.vue页面中加一个共用组件VirtualList.vue<template> <view>  <VirtualList:lis......
  • Vue - 使用 transition 过渡动画、Animate.css 库动画
     一.transitiontransition标签包裹的内容会有一个过渡的动画效果使用transition过渡组件需要满足的条件:条件渲染(v-if)条件展示(v-show)动态组件可以使用 name 属性给 transition 标签起名字class选择器名字和 name 属性有关系,这里 name 属性名为 fade,则cla......
  • 基于fastapi+vue登记系统
    1.创建fastapi项目2.创建vue项目npmcreatevue@latestcdwebnpminstallnpminstallelement-plus修改main.js注册elementui和routerimport'./assets/main.css'importAppfrom'./App.vue'import{createApp}from'vue'importrouterfrom......
  • Vue 中 v-for 的全方位解读:含案例与 key 属性运用及常用数组方法
    目录v-for介绍v-forkey属性的使用Vue数组方法v-for介绍        v-for能够对数字、数组以及对象进行遍历。值得注意的是,当v-for与v-if一同运用时,v-for的优先级要高于v-if。正因如此,应尽量避免将v-if和v-for共同使用。特别是在嵌套使用的情况下,每一......
  • Vue生态工具组合
    文章目录1.Vue版本2.构建工具3.包管理器4.状态管理5.http库6.UI库7.站点生成器8.优质内容收录vue生态工具多种多样,我们要如何选择并组合起来才最好呢。接下来给大家推荐我认为比较好的工具组合方式,方便大家在搭建vue项目时可做一个参考。1.Vue版本新项目推荐优先选......
  • Java计算机毕业设计+Vue实习实训管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今社会,实习实训已成为高等教育中不可或缺的一部分,对于学生实践能力和职业素养的提升具有重要意义。然而,传统的实习实训管理方式存在着诸多不便,如......
  • 防抖ref如何在vue中被定义
    本文由ChatMoney团队出品为什么ref要实现防抖在vue的开发过程中,我们通常会使用到ref,但在我们需要对一个频繁的赋值操作做防抖操作时,我们通常只能通过编写一个独立的防抖函数来实现,这样相对会多一些步骤(麻烦一些)。例如我们给一个即时搜索框的input实现防抖输入(即在输入文本n秒......
  • 在vue中定义一个防抖ref
    本文由ChatMoney团队出品为什么ref要实现防抖在vue的开发过程中,我们通常会使用到ref,但在我们需要对一个频繁的赋值操作做防抖操作时,我们通常只能通过编写一个独立的防抖函数来实现,这样相对会多一些步骤(麻烦一些)。例如我们给一个即时搜索框的input实现防抖输入(即在输入文本n秒......