IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue中的路由嵌套 -> 正文阅读

[JavaScript知识库]Vue中的路由嵌套

路由嵌套,即在当前路由中注册子路由中,形成父子结构,显示子路由对应的组件,需要网址在父路由的pathname下才能实现,后面再具体演示。子路由内也可以注册它的子路由,一直下去就可以形成一个庞大的“家族”。

简单来说,就是在一个路由的页面下,继续使用路由加载新的组件;可以将嵌套路由理解为父子路由,常见的多导航界面通常就是由多层嵌套的组件组合而成。

嵌套路由还有一个优点,就是让新的页面内容展示在父组件的占位符(即router-view标签)中,这样有利于页面结构的搭建,结构清晰。

如何注册子路由呢?

需要用到一个children属性,其值为数组,数组中的每一项对应一个子路由。

代码演示就明白了:以home路由为例,为它创建三个子路由

?{
? ? ? ? path:"/home",
? ? ? ? name:"home",
? ? ? ? component:()=>import('../views/home/index.vue'),
? ? ? ? children:[
? ? ? ? ? ? {
? ? ? ? ? ? ? ? path:"/home/home1",
? ? ? ? ? ? ? ? name:"home1",
? ? ? ? ? ? ? ? component:()=>import('../views/home/home1/index.vue')
? ? ? ? ? ? },
? ? ? ? ? ? {
? ? ? ? ? ? ? ? path:"/home/home2",
? ? ? ? ? ? ? ? name:"home2",
? ? ? ? ? ? ? ? component:()=>import('../views/home/home2/index.vue')
? ? ? ? ? ? },
? ? ? ? ? ? {
? ? ? ? ? ? ? ? path:"/home/home3",
? ? ? ? ? ? ? ? name:"home3",
? ? ? ? ? ? ? ? component:()=>import('../views/home/home3/index.vue')
? ? ? ? ? ? },
? ? ? ? ]
? ? }

这个时候子路由已经注册好了,子路由的path路径都是在父路由的基础下创建,我们再在对应引入组件的位置创建好组件。

结构:

?最后一步,如果要想在页面渲染出来我们还需要在home路由对应的组件中添加router-view标签。

<template>
    <div class="box3">
        <h1>home</h1>
        <!-- 方法一 -->
        <router-link to="/login/ss">通过router-link标签转跳</router-link>
        <!-- 方法二 -->
        <button @click="rto">通过$router.push转跳</button>

        <router-view></router-view>
    </div>
</template>

这个时候,我们在地址栏输入子路由的网址就可以显示出来了。

效果:

我们还可以做一个优化,在home路由对应的组件加载到页面时,我们需要默认加载一个子路由时,我们需要做一个重定向,在home路由中redirect:"重定向的子路由网址"。这个时候加载home页面时默认会加一个子路由。

代码:默认显示home2

 {
        path:"/home",
        name:"home",
        component:()=>import('../views/home/index.vue'),
        redirect:"/home/home2",//当网址为/home时重定向到/home/home2
        children:[
            {
                path:"/home/home1",
                name:"home1",
                component:()=>import('../views/home/home1/index.vue')
            },
            {
                path:"/home/home2",
                name:"home2",
                component:()=>import('../views/home/home2/index.vue')
            },
            {
                path:"/home/home3",
                name:"home3",
                component:()=>import('../views/home/home3/index.vue')
            },
        ]
    }

页面:当我们网址为localhost:8080/home时自动转跳到localhost:8080/home/home2,这时子路由home2对应的组件加载到home中。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:05:12  更:2022-09-13 11:05:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:59:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码