@import'~@/stylesheets/layout.scss';.page-container{height:100%;}.page-header{@includeflex($item:center,$content:space-between);背景:#fff;border-bottom:1pxsolid#eaeaea;.page-brand{@includeflex($item:center,$content:space-between);游标:指针;.page-logo-wrap{宽度:46px;高度高:46px;.page-logo{最大宽度:100%;}}}.page-menu{flex:1;背景:透明;边界:0;}}上一节回顾使用密码加密后端参数校验中间件&错误处理工作内容简单使用vuexvue-router嵌套路由vuex本地持久化准备npminstallvuex--save//先切换到/client目录npminstall--savevuex-persist//先切换到/client目录进行布局分析期待的同学layout自己实现layout可以略读“Layout”部分,几乎都是贴代码。布局分析首页和登录页面没有共同的结构,考虑使用对等路由。首页采用自上而下的结构,可以考虑el-container、el-header、el-main的布局。配置页和首页共同的导航栏只是为了将el-main分成左右两部分,考虑使用嵌套路由。配置页面将el-main分为左右两部分,考虑el-container、el-aside、el-main的布局。嵌套路由//更新文件:client/src/router/index.jsimportVuefrom'vue'importRouterfrom'vue-router'importLoginfrom'@/views/login'importLayoutfrom'@/views/layout'import从'@/views/homepage'导入BackStage从'@/views/backstage'导入PersonalPanel从'@/views/personal-panel'导入ApprovePanel从'@/views/approve-panel'Vue.use(Router)导出defaultnewRouter({routes:[{path:'/',redirect:'/login'},{path:'/login',name:'Login',component:Login},{path:'/home',name:'Layout',component:Layout,children:[//children决定子组件在哪里渲染(替换父组件中的){path:'',name:'HomePage',component:HomePage},{path:'/backstage',//绝对路径,决定跳转路径的计算方式(无前缀)name:'BackStage',component:BackStage,children:[{path:'',name:'personalPanel',component:PersonalPanel},{path:'person',//相对路径,决定跳转路径的计算方式(以父组件路径为前缀)redirect:'/backstage'},{path:'approve',name:'approvePanel',component:ApprovePanel}]}]}]}children控制组件的渲染层级位置匹配哪个router-view匹配路由配置父组件中的router-viewpath控制路由跳转的路径绝对路径:直接通过path值为跳转路径的相对路径:需要加上父组件配置的路径作为前缀,才可以作为跳转路径页面设计//新建一个样式重置文件:客户端/src/样式表/重置。随便找一个...//更新文件:client/src/main.js...import'@/stylesheets/reset.css'...//新建一个样式文件:client/src/stylesheets/layout。scss@mixinflex($dir:row,$content:flex-start,$item:flex-start,$wrap:wrap){display:flex;弹性方向:$dir;证明内容:$内容;对齐项目:$item;flex-wrap:$wrap;}//创建`/home`匹配布局组件:client/src/views/layout/index.vueVue