Vue--ElementUI实现主页面横向导航

简介: Vue--ElementUI实现主页面横向导航

前戏


实现的效果是怎样的呢?如下图所示


面包屑导航


elementUI提供了面包屑组件,可以方便我们快速的实现我们的效果,在components/AppMain/index.vue里写如下代码

<template>
  <div class="main">
      <!-- $route.meta.title 是我们在路由里定义的meta里的title值,$route.path,路由,点击会跳转到对应的路由上 ,这里我们也动态的获取-->
      <el-breadcrumb-item class="line" :to="{ path:  $route.path }">{{ $route.meta.title}}</el-breadcrumb-item>
      </el-breadcrumb>
    <router-view> </router-view> <!-- 组件的出口 -->
  </div>
</template>

重启服务,刷新页面,效果如下

当点击会员管理的时候,会将meta里的title值渲染到这个页面上,后面的会员管理是我们views/member/index.vue里写的内容

上面大概的效果已经出来了,还有点样式和我们最终的效果是有区别的。还有一点是点击首页时希望不出现横向导航,在修改components/AppMain/index.vue里的代码

<template>
  <div class="main">
          <!-- v-show='$route.path !== "/home" 不显示首页的导航 ,不等于/home才显示-->
    <el-breadcrumb v-show='$route.path !== "/home"' separator="/">
      <!-- $route.meta.title 是我们在路由里定义的meta里的title值,$route.path,路由,点击会跳转到对应的路由上 ,这里我们也动态的获取-->
      <el-breadcrumb-item class="line" :to="{ path:  $route.path }">{{ $route.meta.title}}</el-breadcrumb-item>
      </el-breadcrumb>
    <router-view> </router-view> <!-- 组件的出口 -->
  </div>
</template>
<style scoped>
  .el-breadcrumb{
        height: 10px;
        padding: 20px;
        border-radius: 4px; /* 圆角 */
        box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); /* element提供的边框 */
  }
  /* 左边的那条绿线 */
  .line{
        border-left: 3px solid #31c17b;
        padding-left: 10px;
  }
  </style>

刷新页面,我们的效果就出来了


将面包屑作为子组件导入在AppMain下的index.vue里


上面我们已经完成了面包屑导航,我们可以提取成一个组件,在引用它,在AppMain下创建一个 Link.vue 的文件,代码如下

<template>
    <!-- v-show='$route.path !== "/home" 不显示首页的导航 -->
    <el-breadcrumb v-show='$route.path !== "/home"' separator="/">
    <!-- $route.meta.title 是我们在路由里定义的meta,$route.path,路由,点击会跳转到对应的路由上 -->
    <el-breadcrumb-item class="line" :to="{ path:  $route.path }">{{ $route.meta.title}}</el-breadcrumb-item>
    </el-breadcrumb>
</template>
<style scoped>
.el-breadcrumb{
      height: 10px;
      padding: 20px;
      border-radius: 4px; /* 圆角 */
      box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); /* element提供的边框 */
}
/* 左边的那条绿线 */
.line{
      border-left: 3px solid #31c17b;
      padding-left: 10px;
}
</style>

在修改components/AppMain/index.vue里的代码,如下

<template>
  <div class="main">
    <app-link></app-link>
    <!-- 组件渲染的出口 -->
    <router-view></router-view>
  </div>
</template>
<script>
// 导入子组件
// link内置有个标签,不会被当做子组件,所以我们重新命名为AppLink
import AppLink from './Link.vue'
export default {
      components: {AppLink} // 注意有s
}
</script>

刷新页面,效果还是一样的


相关文章
|
6月前
|
JavaScript 前端开发
如何优雅的只在当前页面中覆盖ui库中组件的样式(vue的问题)
如何优雅的只在当前页面中覆盖ui库中组件的样式(vue的问题)
64 0
如何优雅的只在当前页面中覆盖ui库中组件的样式(vue的问题)
|
6月前
Vue3随内容增加滚动到底部
Vue3随内容增加滚动到底部
205 0
|
6月前
uniapp Vue3 面包屑导航 带动态样式
uniapp Vue3 面包屑导航 带动态样式
138 1
|
5月前
|
JavaScript 网络架构
vue3 Elementplus 动态路由菜单不跳转问题
vue3 Elementplus 动态路由菜单不跳转问题
156 1
|
1月前
|
存储 JavaScript UED
在 Vue 组件中动态切换全局样式
【10月更文挑战第5天】
27 1
|
3月前
|
JavaScript
在Vue中使用Swiper轮播图、同时解决点击轮播图左右切换按钮不生效的问题、同时将轮播图抽离出为一个公共组件
这篇文章介绍了在Vue中如何使用Swiper插件创建轮播图,解决Swiper左右切换按钮不生效的问题,并展示了如何将Swiper轮播图抽离成一个可复用的公共组件,同时提供了详细的安装、配置和优化建议。
在Vue中使用Swiper轮播图、同时解决点击轮播图左右切换按钮不生效的问题、同时将轮播图抽离出为一个公共组件
|
JavaScript 前端开发
Vue3动态面包屑的实现
Vue3动态面包屑的实现
214 0
|
6月前
|
JavaScript
vue页面如何单独给背景色全方案
vue页面如何单独给背景色全方案
|
6月前
Vue3实现列表的拖拽切换
Vue3实现列表的拖拽切换
100 0
|
11月前
vue2实现后台管理系统的侧边栏切换子页面
vue2实现后台管理系统的侧边栏切换子页面
100 0