首页 > 其他分享 >vue3中router配置中的children怎么用

vue3中router配置中的children怎么用

时间:2023-12-19 09:11:06浏览次数:27  
标签:parent ParentComponent child vue3 router AnotherChildComponent children 路由

在Vue 3中,当你使用Vue Router创建路由配置时,
children属性允许你为某个路由定义嵌套路由。这意味着你可以在父路由下设置子路由,从而构建出具有层级结构的URL路径。
这里是一个基本的例子,展示了如何在Vue Router中使用children属性:

import { createRouter, createWebHistory } from 'vue-router';
import ParentComponent from './components/ParentComponent.vue';
import ChildComponent from './components/ChildComponent.vue';
import AnotherChildComponent from './components/AnotherChildComponent.vue';

const routes = [
  {
    path: '/parent',
    component: ParentComponent,
    children: [
      {
        // 当 /parent/child 被匹配时,ChildComponent 会被渲染在 ParentComponent 的 <router-view> 中
        path: 'child',
        component: ChildComponent,
      },
      {
        // 当 /parent/another-child 被匹配时,AnotherChildComponent 会被渲染在 ParentComponent 的 <router-view> 中
        path: 'another-child',
        component: AnotherChildComponent,
      },
      // 如果你想要一个默认的子路由,可以使用空字符串作为子路由的 path
      {
        path: '',
        component: DefaultChildComponent,
      }
    ],
  },
  // ...其他路由
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

在这个例子中,/parent 路径对应的组件 ParentComponent 有两个子路由:/parent/child 和 /parent/another-child。这些子路由分别对应 ChildComponent 和 AnotherChildComponent 组件。当用户访问这些路径时,对应的子组件将会被渲染在 ParentComponent 的 中。
要使嵌套路由工作,ParentComponent 需要包含一个 元素,这是子组件渲染的占位符:

<!-- ParentComponent.vue -->
<template>
  <div>
    <h1>Parent Component</h1>
    <!-- 子路由的组件将会渲染在这里 -->
    <router-view></router-view>
  </div>
</template>

使用嵌套路由可以帮助你组织和管理复杂的界面布局,特别是当你的应用程序具有多层次的导航结构时。

请不要忘记帮忙点赞,这是对我的最大支持和鼓励,如果你有任何问题或者建议,也欢迎在评论区留言。

标签:parent,ParentComponent,child,vue3,router,AnotherChildComponent,children,路由
From: https://www.cnblogs.com/tommywow/p/17912842.html

相关文章

  • vue3.0+vite问题汇总
    1、找不到模块“vite”。你的意思是要将"moduleResolution"选项设置为"node",还是要将别名添加到"paths"选项中 解决方法(tsconfig.json添加如下代码,添加之后重启;重启之后如果仍然有问题,可能是编辑器版本比较旧,升级编辑器版本,我从vscodev1.74.x更新到了v1.85.1解决了):"c......
  • #yyds干货盘点#在 React Router 中使用 JWT
    创建一个React项目使用下方的指令会为我们创建一个项目$npmcreatevite@latestreact-jwt-cn然后我们选择 react 和 javascript 作为我们的框架和语言。在项目开始之前,我们要确保所有的依赖都已经被安装,所以我们要先执行$npminstall安装完毕后,在项目的根目录下,我们可以运......
  • vue3 相关知识汇总
    1组合式api和选项式api  1.1概念  选项式api:用包含多个选项的对象来描述组件的逻辑。  组合式api:组合式api使用导入的API函数来描述组件逻辑。组合式API通常会与<scriptsetup>搭配使用。  1.2应用场景    选项式api:不需要使用构建工具或者低复......
  • vue3中的样式为什么加上scoped不生效
    <style>标签添加scoped属性时,Vue会自动为该组件内的所有元素添加一个独特的数据属性,例如data-v-f3f3eg9。同时,它也会修改你的CSS选择器,使得它们只匹配带有这个独特数据属性的元素。这样做的目的是为了确保样式只应用于当前组件内的元素,避免影响到其他组件。然而,当你尝试覆盖子组......
  • vue3构建全流程
    1.创建工程:npminitvue@latest  删除components下的所有自动生成文件:新建目录api、utils、views  将request.js放在utils下,request.js内容://定制请求的实例//导入axiosnpminstallaxiosimportaxiosfrom'axios';//定义一个变量,记录公共的前缀,bas......
  • vue3+vite+js中二次封装axios
    一、安装axiosnpmiaxios二、文件结构涉及到的文件:utils/request.sjapi/index.js(可以根据不同页面在api文件下新建不同文件夹,方便管理)vite.config.js三、request.js对axios进行简单的二次封装importaxiosfrom"axios";constrequest=axios.create({//......
  • Vue3响应式概念
    响应式的基本概念响应式是指当数据发生变化时,系统会自动更新与数据相关的DOM结构。在Vue2中,响应式系统的实现基于 Object.defineProperty。然而,Object.defineProperty 有一些局限,如:无法监听数组的变化、需要遍历对象的每个属性进行监听、性能开销较大。在Vue3中,响应式系统......
  • 使用router.replace解决路由跳转问题
    需求:A页面跳转到B页面,B页面带参跳转到C页面,C页面点击确定带参跳转回B页面。但是C页面点击返回按钮可返回到B页面,B页面点击返回按钮可返回到A页面。即A->B(带参)<->C(带参)在Vue3中,如果全部使用router.push带参跳转,则返回时路由跳转会变得很混乱。解决方法:B和C页面的相互跳转全部使......
  • vue3Cron表达式组件
    npm安装no-vue3-cron引入报错,就直接把代码拿来自己改了no-vue3-cron仓库地址:https://github.com/wuchuanpeng/no-vue3-cronvue-cron.vue<stylelang="scss">.no-vue3-cron-div{.language{position:absolute;right:25px;z-index:1;}.el-tabs{......
  • vue3.0项目搭建
    一、安装vue3脚手架卸载vue2脚手架npmuninstall-gvue-cli清除缓存npmcacheclen--force安装最新脚手架npminstall-g@vue/cli查看脚手架版本vue-V二、构建项目创建项目vuecreate项目名选择配置自定义配置,回车上下键选择Linter/......