广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue折叠面板组件的封装
  • 835
分享到

Vue折叠面板组件的封装

2024-04-02 19:04:59 835人浏览 安东尼
摘要

本文实例为大家分享了Vue折叠面板组件的封装代码,供大家参考,具体内容如下 该组件使用了 Element 的一些 icon 图标,以及 过渡动画 el-collapse-transi

本文实例为大家分享了Vue折叠面板组件的封装代码,供大家参考,具体内容如下

该组件使用了 Element 的一些 icon 图标,以及 过渡动画 el-collapse-transition,需安装 element

具体使用方法,主要知识点 provide ,inject,this.$children 和 _uid (vue中无论递归组件,还是自定义组件,每个组件都有唯一的_uid)

<!-- 折叠组件 -->
<navigation-bar v-model="barName" accordion>
  <navigation-bar-item label="测试1" name="1" line>测试1</navigation-bar-item>
  <navigation-bar-item label="测试2" name="2" line>测试2</navigation-bar-item>
  <navigation-bar-item label="测试3" name="3">测试3</navigation-bar-item>
</navigation-bar>

navigation-bar 组件代码如下

<template>
  <div>
    <slot></slot>
  </div>
</template>

<script>
export default {
  name: "navigationBar",
  provide () {
    return {
      Bar: this
    }
  },
  props: {
    value: {
      type: String,
      default: ''
    },
    accordion: {
      type: Boolean,
      default: false
    }
  },
  methods: {
    changeState (id) {
      this.$children.forEach(item => {
        if (item._uid !== id) {
          item.isshow = false
        } else {
          item.isShow = !item.isShow
        }
      })
    }
  },
}
</script>

<style scoped>

</style>

navigation-bar-item 组件代码如下,el-image 的图片地址使用的本地图片,请更换自己的路径

<template>
  <div :class="line && !isShow ? 'content' : ''">
    <div class="navigationBar" @click="foldClick">
      <div class="navigationBarLeft"></div>
      <div class="navigationBarRight">
        <span>{{label}}</span>
        <div class="navigationBarIcon">
          <el-image style="width: 18px; height: 18px" :src="require('../assets/img/doubt.png')" ></el-image>
          <i :class="isShow ? 'rotate' : 'rotate1'" ref="foldIcon" style="margin-left: 10px" class="el-icon-arrow-down"></i>
        </div>
      </div>
    </div>
    <el-collapse-transition>
      <div v-show="isShow">
        <slot></slot>
      </div>
    </el-collapse-transition>
  </div>
</template>

<script>
export default {
  name: "navigationBarItem",
  inject: ['Bar'],
  props:{
    label:{
      type: String,
      required: true
    },
    name:{
      type: String,
      default: ''
    },
    line: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      isShow: false
    }
  },
  mounted() {
    // 默认展开
    this.Bar.value === this.name ? this.isShow = true : ''
  },
  methods: {
    // 导航条折叠
    foldClick() {
      if (this.Bar.accordion) {
        this.Bar.changeState(this._uid)
      } else {
        this.isShow = !this.isShow;
      }
    }
  }
}
</script>

<style scoped>
  .navigationBar {
    display: flex;
  }
  .navigationBar:hover {
    cursor: pointer;
  }
  .navigationBarLeft {
    width: 6px;
    height: 25px;
    background-color: #3179F4;
  }
  .navigationBarRight {
    flex: 1;
    display: flex;
    height: 25px;
    background-color: #F2F2F2;
    justify-content: space-between;
    padding: 0 10px;
    align-items: center;
    font-size: 14px;
  }
  .navigationBarIcon {
    display: flex;
    align-items: center;
  }
  .rotate {
    transfORM: rotate(180deg);
    transition: transform .3s;
  }
  .rotate1 {
    transform: rotate(0deg);
    transition: transform .3s;
  }

  .content {
    border-bottom: 1px solid #DCDFE6;
  }
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Vue折叠面板组件的封装

本文链接: https://www.lsjlt.com/news/145239.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue折叠面板组件的封装
    本文实例为大家分享了Vue折叠面板组件的封装代码,供大家参考,具体内容如下 该组件使用了 Element 的一些 icon 图标,以及 过渡动画 el-collapse-transi...
    99+
    2022-11-13
  • vue面包屑组件的封装方法
    vue中自己封装面包屑组件,供大家参考,具体内容如下 要实现效果 前言 很多电商类产品都需要实现面包屑导航,用来优化用户体验 一、初级面包屑封装组件 1.封装基础结构组件 Brea...
    99+
    2022-11-12
  • vue面包屑导航组件封装
    目录一、为什么需要面包屑?二、初级封装1. 实现思路2. 代码演示3. 使用4. 不足三、进阶封装1. 实现思路2. 代码演示3. 使用4. 不足四、高阶封装1. 思路2. 代码演示...
    99+
    2022-11-13
  • vue使用Split封装通用拖拽滑动分隔面板组件
    目录前言开始基础布局数据绑定事件绑定优化优化一 抖动问题优化二 鼠标样式优化三 滑动限制优化四 面板默认宽度和滑动器宽度优化五 插槽优化六 禁止选中结束组件完整代码组件使用示例前言 ...
    99+
    2022-11-11
  • vue 折叠展示多行文本组件的实现代码
    折叠展示多行文本组件 折叠展示多行文本组件,自动根据传入的expand判断是否需要折叠 两种模式:展开/收起展示全文本(默认)、popover展示全文本 先上代码 <t...
    99+
    2022-11-12
  • 使用vue组件封装共用的组件
    目录这里提供两种vue封装共用组件的方法方法一方法二vue封装公共组件调用方法这里提供两种vue封装共用组件的方法 方法一 main.js中 import ListItem from...
    99+
    2022-11-13
  • vue+elementUI面包屑组件封装方法详解
    本文实例为大家分享了vue+elementUI面包屑组件封装的具体代码,供大家参考,具体内容如下 一.选择用哪种样式 二.在组件文件夹下创建组件 三.在Bread.vue复制如下...
    99+
    2022-11-13
  • Vue页面内公共的多类型附件图片上传区域并适用折叠面板(示例代码)
    在前端项目中,附件上传是很常用的功能,几乎所有的app相关项目中都会使用到,一般在选择使用某个前端UI框架时,可以查找其内封装好的图片上传组件,但某些情况下可能并不适用于自身的项目需...
    99+
    2022-11-12
  • vue中的slot封装组件弹窗
    目录slot封装组件弹窗vue组件slot入门---弹窗组件插槽的基础使用弹窗组件slot封装组件弹窗 <template>   <el-dialog :title...
    99+
    2022-11-13
  • vue日历组件的封装方法
    本文实例为大家分享了vue日历组件的封装代码,供大家参考,具体内容如下 图示 封装的组件的代码如下 <template>   <div class="calend...
    99+
    2022-11-13
  • Vue分页组件的封装方法
    前言 这个是基于vue2的分页封装,仿照elementUI而写的组件。 效果如图 话不多说,直接上代码 <template>   <div class="pagi...
    99+
    2022-11-13
  • 如何使用vue组件封装共用的组件
    这篇文章主要介绍了如何使用vue组件封装共用的组件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用vue组件封装共用的组件文章都会有所收获,下面我们一起来看看吧。这里提供两种vue封装共用组件的方法方法一...
    99+
    2023-06-30
  • Vue实现轮播图组件的封装
    目录轮播图功能-获取数据轮播图-通用轮播图组件轮播图-数据渲染轮播图-逻辑封装轮播图功能-获取数据 目标: 基于pinia获取轮播图数据 核心代码: (1)在types/data.d...
    99+
    2023-05-16
    Vue轮播图组件封装 Vue组件封装
  • 开发一个封装iframe的vue组件
    目录一、组件介绍 二、组件内部结构及逻辑 1、代码组织结构2、地图组件三、iframe接口 四、外部接口 五、运行结果六、总结 VUE的基本组成单元,我看应该是组件。用VUE开发前端...
    99+
    2022-11-11
  • Vue封装全局toast组件的应用
    这篇文章主要介绍“Vue封装全局toast组件的应用”,在日常操作中,相信很多人在Vue封装全局toast组件的应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue封装全局toast组件的应用”的疑惑有所...
    99+
    2023-06-20
  • Vue下如何用递归组件实现一个可折叠的树形菜单
    这篇文章主要介绍“Vue下如何用递归组件实现一个可折叠的树形菜单”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue下如何用递归组件实现一个可折叠的树形菜单”文章能帮助大家解决问题。在Vue.js中...
    99+
    2023-07-04
  • Vue中如何对ElementUI的Dialog组件封装
    目录对ElementUI的Dialog组件封装.sync 修饰符说明总结对ElementUI的Dialog组件封装 1.子组件的写法 <el-dialog     title=...
    99+
    2023-03-11
    Vue ElementUI Dialog组件封装 Vue ElementUI封装
  • Vue中怎么对ElementUI的Dialog组件封装
    本篇内容主要讲解“Vue中怎么对ElementUI的Dialog组件封装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中怎么对ElementUI的Dialog组件封装”吧!对Element...
    99+
    2023-07-05
  • vue如何封装div框选时间的组件
    这篇文章主要为大家展示了“vue如何封装div框选时间的组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装div框选时间的组件”这篇文章吧。div...
    99+
    2022-10-19
  • Vue封装全局toast组件的完整实例
    目录前言 一. 借助 vue-cli 1. 定义 Toast 组件2. 在 main.js 里面配置3. 在其他组件内使用二、不借助 vue-cli 1. 注册 toast 组件2....
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作