模拟人生4做游戏下载网站搜索引擎市场份额2023
作用
配嵌套子路由,就是可以通过同一个页面,让不同的位置发生变化,其他的位置不会发生变化,而做到一个局部刷新
例子
红线框住的部分,头部和导航栏是不会发生变化的,变化的只有中间的内容
子路由的操作步骤
将这个页面的头部和导航栏部分的样式和风格,移到主路由上(<template>和<scripe>),将内容部分移到子路由
主路由页面
<script>
import {defineComponent} from 'vue'
import HeadMenu from "@/views/inc/HeadMenu.vue";
import SideMenu from "@/views/inc/SideMenu.vue";export default defineComponent({name: "Home",components: {SideMenu, HeadMenu}
})
</script><template><el-container><!-- 左侧菜单栏 --><el-aside class="el-aside" style="width: 200px"><SideMenu></SideMenu></el-aside><!-- 右侧主体内容 --><el-container><!-- 头部导航栏 --><el-header class="header"><HeadMenu></HeadMenu></el-header><!-- 主要内容区域 --><el-main class="main"><router-view></router-view></el-main></el-container></el-container>
</template>
<script>
import SideMenu from "./inc/SideMenu.vue";
import HeadMenu from "./inc/HeadMenu.vue";export default {name: "Home",components: {SideMenu,HeadMenu}};
</script><style >
.el-aside {background-color: #D3DCE6;color: #333;text-align: left; /* 将文本向左对齐 */line-height: 60px; /* 菜单项垂直对齐 */height: 100%; /* 设置高度为父容器 el-container 的高度 */display: flex; /* 使用 Flex 布局 */flex-direction: column; /* 垂直布局 */
}.el-menu-vertical-demo {flex: 1; /* 菜单项占据 el-aside 的剩余空间 */overflow-y: auto; /* 如果内容过多,显示滚动条 */width: 200px;
}.el-container {padding: 0;margin: 0;height: 100vh; /* 设置整体容器高度为视窗高度 */
}.el-header {background-color: #B3C0D1;color: #333;text-align: center;line-height: 60px;
}.el-main {color: #333;text-align: center;line-height: 160px;
}</style>
我这里是进行了一个页面的抽取
子路由页面
<template>
<div>main</div>
</template>
<script>
import SideMenu from "./inc/SideMenu.vue";
import HeadMenu from "./inc/HeadMenu.vue";export default {name: "index",components: {}};
</script>
<style scoped></style>
配置路由
{path: '/',name: 'Home',component: () => import( '../views/Home.vue'),children: [{path: '/index',name: 'index',component: () => import( '../views/index.vue')}],},
相当于它还是同一个页面,只是里面进行了一个嵌套
这个时候页面还没有反应,因为没有引用
引用
<!-- 主要内容区域 --><el-main class="main"><router-view></router-view></el-main>
使用<router-view></router-view>来进行引用
成功
结果
这样就可以做到在不创建新页面的情况下,使用同一个页面完成局部刷新