代码先锋网 代码片段及技术文章聚合

Vue3.0 + Element Plus| 侧边导航栏、标题栏组件应用全局

技术标签: vue3.0+element plus  vue  elementui

刚开始接触项目,从0开始搭建管理平台,最开始先写的页面布局,采用的很笨的方法:每写一个页面就写一次页面布局样式

<el-container>
    <el-aside style="width: auto"  v-if="$route.meta.keepAlive">
        <keep-alive>

        <!--  封装好的侧边导航栏组件  -->
        <com-sidebar ></com-sidebar>

        </keep-alive>
    </el-aside>

    <el-container>

        <el-header v-if="$route.meta.keepAlive">
          <keep-alive>

          <!--  封装好的顶部标题栏组件  -->
          <header-navbar ></header-navbar>

          </keep-alive>
        </el-header>

        <el-main>

          <!--  此处为不同的页面样式语句  -->

        </el-main>
    </el-container>
</el-container>

后来随着页面逐渐变多,代码冗余量也逐渐增多。于是采取了以下方法将整体的页面布局注册为了全局布局组件:

App.main文件

HTML:
<el-container>
      <el-aside style="width: auto" v-if="$route.meta.keepAlive">
        <keep-alive>
          <com-sidebar></com-sidebar>
        </keep-alive>
      </el-aside>
      <el-container>
        <el-header v-if="$route.meta.keepAlive">
          <keep-alive>
            <header-navbar></header-navbar>
          </keep-alive>
        </el-header>
        <el-main style="padding:0">
          <router-view></router-view>
        </el-main>
      </el-container>
</el-container>



JS:
<script>
import ComSidebar from "@/components/sidebar/sidebar";
import HeaderNavbar from "@/components/navbar/navbar";

export default {
  name: 'App',
  components: {
    ComSidebar,
    HeaderNavbar
  }
}
</script>

对于登录页、404页等不需要侧边栏的页面,可以利用keep-alive结合$route.meta来判断渲染(App.vue见上)

route/index.js文件

{
        path: '/login',
        component: () => import('@/pages/login/'),
        hidden: true,
        meta: {
            keepAlive: false,
            title: '登录'
        }
},
版权声明:本文为StellaXiao98原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/StellaXiao98/article/details/118937365

智能推荐

Vue3.0中element-plus按需引入

首先安装一个按需导入插件 然后在babel.config.js中,没有的话创建一个 创建一个global文件夹,里面创建一个register-element.ts 然后创建一个入口文件,index.ts 然后去到我们的main.ts中 完事,之后在页面中什么都不用引入,直接使用我们在register-element.ts中定义的组件就行...

html使用vue3.0必须使用element plus

开发环境: html用的vue2.x版本配合elementui,现要求使用vue3.x版本,发现必须elementui只能适用vue2.x,故使用element plus,由于并非vue文件,现通过CDN方式导入...

Vue3.0—vite—安装element-plus

1、安装element plus 2、在main.ts文件里面配置element-plus 3、调用 element-plus的组件...

猜你喜欢

vue3.0按需引入element-plus

1、使用vite创建项目,并设置TS支持 2、安装element-plus 3、安装unplugin-vue-components 4、vite.config.ts中配置按需引入,配置后文件如下 至此,便可以使用element-plus了...

vue3.0 使用element-plus 按需自动导入

一、element-plus 安装 二、vue.config.js 配置 三、Icon的使用 1. 安装(第一种方式) 2. 全局注册 (新建svgicon.js文件) 3. main.js中引入 4. 项目中使用 5. 第二种方式(注册组件 新建 Icon.vue) 6. 项目中使用...

解决Vue3.0整合element plus时el-menu导航选中后刷新页面保持当前选中状态

简要概述 element plus是element官方针对Vue3.0做的一套前端UI组件,在开发过程中经常会使用到el-menu这个组件,而且我们会将当前**的菜单设置高亮,而如果不设置default-active属性,我们则会遇到刷新页面后当前**的菜单项不高亮的问题 下面来解决这个问题,本文是根据vue3做的,之前在网上看到好多教程,都是提示将default-active设置为$router...

vue3.0 + element plus + vite + TS + eslint 一次尝试

技术栈:vue3.0 + element plus + vite + TS + eslint 初始化项目 创建项目 进入项目,安装依赖,运行项目 引入TS 加入 ts 依赖 yarn add --dev typescript 在 项目根目录下创建 TypeScript 的配置文件 tsconfig.json 在 src 目录下新加 shim.d.ts 文件 把 main.js 修改成 main.t...

ng-options和ng-checked在表单中的高级运用

2019独角兽企业重金招聘Python工程师标准>>> AngularJS是当前非常的流行的前端框架,它的语法糖非常多,也极大的方便了前端开发者,但是有着用法还是需要去琢磨一下的 ng-options 在select表单控件中,总结一下目前的几种写法。 普通写法 优点:简单 缺点: 代码很不简洁,如果选项较多就会很乱 不方便渲染,如果option在变需要使用js动态加载 不方便存...