Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由

嵌套路由 :就是一个组件内部还希望展示其他的组件,使用嵌套的方式实现页面组件的渲染。
就像 根组件 通过路由渲染 普通组件一样,嵌套路由也是一样的道理。

嵌套路由的相关关键配置

1、<router-view> 标签 声明 被嵌套组件 的渲染位置;
2、路由配置表中使用 children:[] 来声明 嵌套的子路由;
3、子路由 的path属性 中不可以带 /,否则无法匹配!
4、嵌套路由可以无限嵌套。

嵌套路由的语法格式

  {
        path:'/a', // 父级路由path 要有 / 
        name:'aroute',
        component:componentA,
        children:[
            {
                path:'b', // 子路由的path中 不可以有 /
                name:'broute',
                component:componentB,
            },
			
			... 还可以添加其他的子路由对象
        ]
    }

写一个案例来看看

案例的项目结构

projectName
	| -- src
		| -- App.vue
		| - componentA.vue
		| - componentB.vue
		| - componentC.vue
		| -- router.ts # 路由的配置文件
	| -- index.html

路由配置 router.ts

// 导入 定义路由的两个方法
import {createRouter,createWebHistory}  from 'vue-router'

// 引入两个组件
import componentA from "./componentA.vue";
import componentB from "./componentB.vue";
import componentC from "./componentC.vue";

// 声明路由跳转的路径与组件的对应关系
const routsList = [
    {
        path:'/a',
        name:'aroute',
        component:componentA,
        children:[
            {
                path:'b',
                name:'broute',
                component:componentB,
                children:[
                    {
                        path:'c',
                        name:'croute',
                        component:componentC
                    },
                ]
            },
        ]
    },
]

// 创建路由的实例对象
const routerConfigObj = createRouter({
    history:createWebHistory('abc'), // 带一个参数,表示是路由的一个前缀
    routes:routsList // 指定路由的配置列表
})

// 导出路由的对象
export default routerConfigObj;

App.vue 中的跳转逻辑代码

有一个按钮,点击跳转到一个嵌套的路由中去

<template>
    <div class="basediv">
      
        APP.vue 中的 msg : {{ msg }}

        <br>   
        <button @click="pushToB">路由到组件B</button>
        <!-- <br> -->
        <br>
        <br><br><br>
        <!-- router-view 进行目标组件的展示 -->
        <router-view></router-view>
    
    </div>
   
</template>
    
<script setup lang="ts">

	// 引入 provide 方法
    import { ref } from 'vue'

    // 引入路由配置实例 与 当前路由对象
    import { useRouter } from 'vue-router';

    // 声明父组件的一个变量
    const msg = ref('这是App根组件的msg变量')

    // 接收一下路由实例对象 和 当前路由 对象
    const routerObj = useRouter();

    // 路由跳转到 B组件的处理方法
    const pushToB = ()=>{
        routerObj.replace({
            path:'/a/b',
            query:{
                p3:'vue3',
                p4:'路由的跳转'
            }
        })
    }    
    
</script>
    
<style scoped>

    .basediv{
        width: 600px;
        height: 400px;
        border: 1px solid red;
    }
</style>

componentA.vue

componentB.vue 和componentA.vue的代码一致;
componentC.vue 中 没有 <router-view>标签

<template>
    <div class="diva">
        这是组件A
        <br>
        <!-- 子组件的展示位置 -->
        <router-view></router-view>
    </div>
    
</template>

<script setup lang="ts">

    // 引入两个路由相关的方法
    import { useRouter,useRoute} from 'vue-router';

    // 声明 路由实例对象 和 当前路由对象
    const routerObj = useRouter()
    const currentRoute = useRoute()

    // 打印一下路由实例对象 和 当前路由对象
    console.log('A 组件 中 路由实例对象 :',routerObj)
    console.log('A 组件 中 当前路由对象 :',currentRoute)


</script>

<style scoped>
    .diva{
        width: 300px;
        height: 200px;
        background: red;
    }
</style>

运行效果

1、初始状态

在这里插入图片描述

2、浏览器地址栏中直接输入地址进行路由

在这里插入图片描述

3、点击按钮进行路由

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/277200.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Echarts中饼图-实现放大显示数据

示例 代码演示 option {tooltip: {trigger: item},legend: {top: 5%,left: center},series: [{name: Access From,type: pie,radius: [40%, 70%],avoidLabelOverlap: false,label: {show: false,position: center},emphasis: {scale: true,//是否开启高亮后扇区的放大效果。s…

python查找mongo中符合条件的json记录

一、需求&#xff1a; 之前有次需要临时查找mongo中存储的json串&#xff0c;符合特定条件的记录&#xff1b; 举个例子&#xff0c;mongo中记录如下图&#xff1a; 其中每条存储的数据大概为&#xff1a; [{"createUser": "Zxtech","paramName&qu…

LVM逻辑卷与扩容

目录 一.LVM&#xff1a; 1.什么是LVM&#xff1a; 2.LVM的基本核心组件&#xff1a; 3.LVM的基本命令&#xff1a; 二.逻辑卷的创建&#xff1a; 第一步&#xff0c;我们先要为虚拟机添加硬盘 然后我们要添加依赖包 然后我们要进行磁盘分区 再添加好分区后&#xff0…

回顾2023,展望2024

时光飞逝&#xff0c;光阴似箭&#xff0c;转眼间又到了一年的年末&#xff0c;现在是2023年12月29日&#xff0c;再过两天就要元旦了&#xff0c;我们也要跨入2024年了。 记录自己的总结&#xff0c;一直想写&#xff0c;不知从何写起&#xff0c;在这一年中&#xff0c;有深夜…

程序员实现财富自由的十种方法!

程序员肯定都有过一夜暴富的梦想&#xff0c;也许是兼职接单&#xff0c;也许是成为炙手可热的大网红&#xff0c;也许只是平凡的中张百万大奖彩票…… 除去运气超好实力拔群以外&#xff0c;大多数程序员是很难在短时间内实现财富自由的。虽是如此&#xff0c;但搞钱对于程序…

Unity Shader-真实下雨路面

Unity Shader-真实下雨路面 简介素材1.准备插件Amplify Shader Editor&#xff08;这里我使用的是1.6.4最新版&#xff09;2.贴纸和切图d 一、创建一个Shader Surface&#xff0c;实现气泡播放效果二、叠加一次气泡播放效果&#xff0c;使其看起来更多&#xff0c;更无序三、小…

Matplotlib_plt.subplots 遇见中文乱码解决方案

文章目录 一、现象&#xff1a;二、解决方案1.将 **SimHei.ttf** &#xff0c;下载到当前运行目录中2.绘图中涉及标题、横纵坐标等&#xff0c;加上 **FontProperties font** 即可 环境说明&#xff1a;macOS系统 一、现象&#xff1a; 原先代码是这样的 import numpy as n…

BUUCTF Reverse/[2019红帽杯]Snake

BUUCTF Reverse/[2019红帽杯]Snake 下载解压缩后得到可执行文件&#xff0c;而且有一个unity的应用程序&#xff0c;应该是用unity编写的游戏 打开是一个贪吃蛇游戏 用.NET Reflector打开Assembly-CSharp.dll。&#xff08;unity在打包后&#xff0c;会将所有的代码打进一个Ass…

二、类与对象(三)

17 初始化列表 17.1 初始化列表的引入 之前我们给成员进行初始化时&#xff0c;采用的是下面的这种方式&#xff1a; class Date { public:Date(int year, int month, int day)//构造函数{_year year;_month month;_day day;} private:int _year;int _month;int _day; };…

社招面试题:说一说SPI是什么,有哪些使用场景?

大家好&#xff0c;我是小米&#xff01;今天在这里和大家分享一个在技术面试中常被问到的话题——SPI&#xff08;Service Provider Interface&#xff09;&#xff0c;这是一个令人着迷的技术领域&#xff0c;也是很多Java开发者必须要熟悉的概念。不废话&#xff0c;让我们一…

TikTok短视频互动:设计引人入胜的玩法体验

在数字社交的浪潮中&#xff0c;TikTok以其独特的短视频形式和丰富多彩的互动玩法&#xff0c;成为了全球年轻一代热衷的社交平台。本文将深入剖析TikTok短视频互动的精髓&#xff0c;探讨其设计背后的原理&#xff0c;以及为何这种互动体验如此吸引人。 创意挑战的魅力 TikTok…

机器视觉在智能交通与无人驾驶领域的应用及前景

​引言 机器视觉算法对于智能交通系统和无人驾驶技术是十分重要的。机器视觉技术是无人驾驶汽车感知环境、做出决策的关键&#xff0c;它使得车辆能够理解周围的世界并安全地导航。在智能交通系统中&#xff0c;机器视觉也发挥着至关重要的作用&#xff0c;从提高交通效率到增…

Unity Shader 实现X光效果

Unity Shader 实现X光效果 Unity Shader 实现实物遮挡外轮廓发光效果第五人格黎明杀机火炬之光 实现方案操作实现立体感优化总结源码 Unity Shader 实现实物遮挡外轮廓发光效果 之前看过《火炬之光》、《黎明杀机》、《第五人格》等不少的游戏里面人物被建筑物遮挡呈现出不同的…

【Java干货教程】JSON,JSONObject,JSONArray类详解

一、定义 JSON&#xff1a;就是一种轻量级的数据交换格式&#xff0c;被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构&#xff0c;易于阅读和编写&#xff1b;同时也易于机器解析和生成&#xff0c;有效的提升网络传输效率&#xff1b;支持多种语言&#xff0c;很多…

「年终总结」生成人工智能的奇妙年份

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

MySQL之复合查询

单表查询回顾 在讲解多表查询前&#xff0c;我们先回顾一下单表查询&#xff0c;这是因为多表查询本质上依然是单表查询&#xff08;其原因在下文中讲解多表查询时再说明&#xff09;&#xff0c;只要掌握了单表查询&#xff0c;那么想掌握多表查询是非常简单的。 在<<…

【Electron】富文本编辑器之文本粘贴

由于这个问题导致&#xff0c;从其他地方复制来的内容 粘贴发送之后都会多一个 换行 在发送的时候如果直接&#xff0c;发送innerHTML 就 可以解决 Electron h5 Andriod 都没问题&#xff0c;但是 公司的 IOS 端 不支持&#xff0c;且不提供支持&#xff08;做不了。&#xff…

2023年华为OD机试(python)B卷-符合要求的结对方式

一、题目 题目描述&#xff1a; 用一个数组A代表程序员的工作能力&#xff0c;公司想通过结对编程的方式提高员工的能力&#xff0c;假设结对后的能力为两个员工的能力之和&#xff0c;求一共有多少种结对方式使结对后能力为N。 二、输入输出 输入描述: 5 1 2 2 2 3 4 第一行为…

个人用户免费,亚马逊正式推出 AI 编程服务 CodeWhisperer

亚马逊于 2022 年 6 月以预览版的形式&#xff0c;推出了 AI 辅助编程服务 CodeWhisperer。2023年4月18日&#xff0c;亚马逊云科技宣布&#xff0c;实时 AI 编程助手 Amazon CodeWhisperer 正式可用&#xff0c;同时推出的还有供所有开发人员免费使用的个人版&#xff08;Code…

深入理解Mysql MHA高可用集群搭建:从实验到实战

1. 简介 MHA&#xff08;Master High Availability&#xff09;是一个高效的开源MySQL高可用性解决方案。由日本开发者yoshinorim&#xff08;前DeNA员工&#xff0c;现在Facebook&#xff09;创建&#xff0c;MHA支持MySQL的主从复制架构&#xff0c;自动化主节点故障转移。当…