Pinia+Router学习笔记(十一)

简介: 本节记录嵌套路由&命名视图相关内容

嵌套路由

嵌套路由即二级路由,作用在本身就是路由组件的组件中,可以提供无需刷新的部分页面跳转

import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'

const routes: Array<RouteRecordRaw> = [
  {
    path: '/user',
    name: 'Login',
    component: () => import('../components/footer.vue'),
    children: [
      {
        path: '',
        name: 'Login',
        component: () => import('../components/login.vue'),
      },
      {
        // 注意:这里的路径不能带有/,带有/的路径会被默认解析成根路径
        path: 'reg',
        name: 'Reg',
        component: import('../components/reg.vue'),
      },
    ],
  },
]

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

export default router
<template>
    <div>
        <router-view></router-view>
        <hr />
        <h1>我是父路由</h1>
        <div>
<!--       通过router-link跳转,如果有需要也可以使用编程式路由导航 -->
            <router-link to="/user">login</router-link>
            <br>
            <router-link to="/user/reg">Reg</router-link>
        </div>
    </div>
</template>

<script setup lang="ts">
import { ref, reactive } from 'vue'

</script>

<style scoped></style>

命名视图

在router配置文件中可以利用components配置项定义一些视图,当URL处于对应页面并且组件中具有与之相对应的router-view name属性时将这些组件挂载到页面上

<template>
  <div>
    <hr />
    <h1>我是父路由</h1>
    <div>
      <router-view></router-view>
      <router-view name="user1"></router-view>
      <router-view name="user2"></router-view>
    </div>
  </div>
</template>

<script setup lang="ts">
  import { ref, reactive } from 'vue'

</script>

<style scoped></style>
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'


const routes: Array<RouteRecordRaw> = [
    {
        path: '/',
        name: 'Login',
        component: () => import('../components/footer.vue'),
        children: [
            {
                path: '',
                name: 'Login',
                components: {
                  // 当url为/且footer.vue中有<router-view>时挂载(没有name属性,因为是default)
                    default: () => import('../components/B.vue'),
                },
            },
            {
                path: 'reg',
                name: 'Reg',
                components: {
                  // 当url为/reg且具备对应的<router-view name="组件名">时挂载
                    user1: () => import('../components/login.vue'),
                    user2: () => import('../components/reg.vue'),
                },
            },
        ],
    },
]


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


export default router

效果图:
image.png
image.png

相关文章
|
3月前
|
前端开发
如何使用react-router v6快速搭建路由?
如何使用react-router v6快速搭建路由?
94 0
|
3月前
|
JavaScript 网络架构 开发者
阿珊解说Vue中`$route`和`$router`的区别
阿珊解说Vue中`$route`和`$router`的区别
|
11月前
|
JavaScript 测试技术 开发工具
【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由
Vue CLI 是一个基于 Vue.js 的官方脚手架工具,用于自动生成vue.js+webpack的项目模板,它可以帮助开发者快速搭建 Vue.js 项目的基础结构,并提供了一系列的开发工具和配置选项。Vue CLI 提供了命令行界面和图形化界面两种方式,开发者可以根据自己的喜好选择使用。使用 Vue CLI,可以轻松进行项目初始化、管理依赖、开发调试、构建打包等常用开发任务,简化了 Vue.js 应用的开发流程,提高了开发效率。创建命令如下:xxx为自己创建项目的名称必须先安装等一些必要的环境。
|
10月前
|
移动开发 前端开发 API
React-Router-基本使用
React-Router-基本使用
51 0
|
存储 缓存 JavaScript
|
存储 JavaScript 前端开发
Vue —— 进阶 vue-router 路由(零)(路由的概念、基本使用)
Vue —— 进阶 vue-router 路由(零)(路由的概念、基本使用)
Pinia+Router学习笔记(十二)
本节记录Vue-Router的两种路由重定向方式
101 0
Pinia+Router学习笔记(十四)
本节记录Vue-Router中路由过渡动效相关内容
91 0
|
前端开发
Pinia+Router学习笔记(十五)
本节记录Vue-Router中关于路由滚动行为的相关内容
64 0
|
前端开发 网络架构
Pinia+Router学习笔记(十六)
本节记录Vue-Router中动态路由相关内容
174 0

相关实验场景

更多