前端实战(三):element-ui开关组件的二次封装

news2024/11/16 20:34:28

目录

二次封装 Switch 开关

原始效果

设计效果

实现步骤


在日常开发过程中,大多数项目主要以 vue 为主,并且现在很多公司仍在使用着 vue。但在使用element-ui组件时通常会遇到一些问题:如组件样式与设计不符合、组件不存在某个功能等等;故本文主要探讨使用了element-ui的项目可以怎么封装一些比较通用化的组件。

二次封装 Switch 开关

表示两种相互对立的状态间的切换,多用于触发「开/关」

原始效果:

设计效果:

实现步骤:

  • 新建公共子组件MomSwitch.vue
<template>
    <el-switch class="switchStyle" v-model="value" :active-value="activeValue" :inactive-value="inactiveValue"
        :width="width" :active-text="activeText" :inactive-text="inactiveText" :active-color="activeColor"
        :inactive-color="inactiveColor" :disabled="disabled" :value="value">
    </el-switch>
</template>

<script>
export default {
    model: {
        prop: "value",
        event: "change",
    },
    props: {
        width: {
            type: Number,
            default: ''
        },
        activeText: {
            type: String,
            default: ''
        },
        inactiveText: {
            type: String,
            default: ''
        },
        activeValue: {
            type: Number,
            default: 1
        },
        inactiveValue: {
            type: Number,
            default: 0
        },
        activeColor: {
            type: String,
            default: ''
        },
        inactiveColor: {
            type: String,
            default: ''
        },
        disabled: {
            type: Boolean,
            default: false
        },
        value: {
            type: Number,
            default: 0
        },
    },
    watch: {
        value(val) {
            this.$emit("change", val);
        },
    },
}
</script>

<style>
.switchStyle .el-switch__label {
    position: absolute;
    display: none;
    color: #080d15;
}

.switchStyle .el-switch__label--left {
    z-index: 9;
    left: 20px;
}

.switchStyle .el-switch__label--right {
    z-index: 9;
    left: -4px;
}

.switchStyle .el-switch__label.is-active {
    display: block;
}
</style>

关键代码:

        在封装一个组件时,在使用v-model的时候,需要定制prop和event。因为默认情况下,一个组件上的v-model会把value用作prop、把input用作event,但是在我自定义的组件里,需求的与默认情况不符。因此需要配置子组件接收的 prop 名称,以及派发的事件名称(即定制prop和event)来使用v-model。

        代码块中关于样式的写法以及原因请点击下方链接查看详情:

         关于element-ui的样式覆盖问题_覆盖element样式_@李优秀的博客-CSDN博客关于element-ui组件样式深度覆盖不生效的解决办法以及注意事项https://blog.csdn.net/weixin_48168510/article/details/127446746?spm=1001.2014.3001.5502

  • 父组件中引用公共子组件
<template>
    <el-container style="height:100%" ref="bodyform">
  <MomSwitch v-model="customFormData.ishassn" width="41" activeText="有" inactiveText="无">
   </MomSwitch>
    </el-container>
</template>

<script>
import MomSwitch from '@/CommonComponents/MomSwitch.vue';
export default {
    components: {
       MomSwitch
    },
    data:function () {
         return {
           customFormData:{
                ishassn:0
              }
          }        
    }
}
</script>

<style></style>

到这里就大功告成啦,后续还会不断更新!也欢迎大家指出我的问题!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5年测试经验,自动化都不会?月薪11K都难拿....

我接触了太多测试同行&#xff0c;由于多数同行之前一直做手工测试&#xff0c;现在很迫切希望做自动化测试&#xff0c;其中不乏工作5年以上的同行。 我从事软件自动化测试已经近十年&#xff0c;接触过底层服务端、API 、Web、APP、H5 等等&#xff0c;对自动化算是比较了解…

Spring种存取Bean的5种注解

存取Bean的五种注解 存储Bean对象两种方式1.添加一行bean2.使用注解的方式(5大注解)Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储)Configuration(配置存储)方法注解 Bean 获取Bean对象(三种)1.属性注入2.setter注入3.构造方法注入三种注入的…

自动驾驶TPM技术杂谈 ———— CCRT验收标准(测试项目)

文章目录 试验项目行车辅助跟车能力测试方法前车静止识别与响应前车低速识别与响应前车减速识别与响应前车切入识别与响应前车切出识别与响应跟随前车启停 单车道组合控制能力测试方法车道居中保持交通拥堵辅助高速驾驶辅助 换道辅助能力测试方法无干扰车换道有干扰车换道 泊车…

《面试1v1》java泛型

我是 javapub&#xff0c;一名 Markdown 程序员从&#x1f468;‍&#x1f4bb;&#xff0c;八股文种子选手。 面试官&#xff1a;小伙子,说实话,泛型这个机制一开始我也是一头雾水,搞不太明白它到底要解决什么问题。你能不能不那么书呆子,给我普普通通地讲一讲泛型? 候选人…

真正的进步,是创业者和员工的共同进步

再伟大的事业&#xff0c;也是由人一点一滴创造出来的。 人&#xff0c;是企业中最基础的存在&#xff0c;下层基础决定上层建筑&#xff0c;管理公司企业&#xff0c;也是人与人之间的交流问题。 创业十余年&#xff0c;与市场打交道&#xff0c;也与人打交道。 对外&#x…

ArduPilot Kakute F7 AIO DIYF450 之GPS配置

ArduPilot Kakute F7 AIO DIYF450 之GPS配置 1. 源由2. 步骤2.1 模块预测试2.2 物理连接2.3 UART配置2.4 Compass使能2.5 GPS使能2.6 校准Compass 3. GPS & Compass配置效果3.1 Mission Planner界面3.2 QGroundControl界面3.3 ArduPilot配置修改 4. 参考资料 1. 源由 之前…

选址-路径问题(Location-Routing Problem, LRP)

今天为大家介绍的是选址-路径问题(Location-Routing Problem, LRP)&#xff0c;首先上目录 目录 问题简介 基础模型、扩展问题及应用 算法 参考文献 1 问题简介 为了更好地了解这个问题&#xff0c;我们不妨当一波老板。 想象一下我们是经营一家口罩生产企业的老板&am…

RocketMQ基本概念

RocketMQ 一 引言 Message Queue&#xff08;消息 队列&#xff09;&#xff0c;从字⾯上理解&#xff1a;⾸先它是⼀个队列。先进先出的数据结构——队列。消息队列就是所谓的存放消息的队列。 消息队列解决的不是存放消息的队列的⽬的&#xff0c;解决的是通信问题&#x…

C语言实现顺序表--数据结构

魔王的介绍&#xff1a;&#x1f636;‍&#x1f32b;️一名双非本科大一小白。魔王的目标&#xff1a;&#x1f92f;努力赶上周围卷王的脚步。魔王的主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王.&#x1f525;&#x1f525;&#x1f525; ❤️‍&#x1…

项目管理中引入PMO的应用研究——以H研究所为例

摘 要 本文从项目管理办公室&#xff08;PMO&#xff09;的基本内涵出发&#xff0c;探讨了PMO在以“项目”为主要工作组织方式的H研究所应用过程中发挥的作用、具有的优势、取得的成效与存在的不足&#xff0c;从而实现为企业培养专业的项目经理团队&#xff0c;为业务部门定…

Ubuntu20.04安装CUDA和CUDNN

CUDA是GPU深度学习的运行库&#xff0c;那么cuDNN就是训练加速工具&#xff0c;两者要相互配合使用&#xff0c;所以一般机器学习需要训练引擎(tensorflow-gpu) CUDA cuDNN使用。想不安装cuDNN是不可以的&#xff0c;而且cuDNN版本要和CUDA版本相互搭配。 1、前置工作 查看…

最新动态 | 大势智慧参加广东省应急测绘保障与安全生产演练

4月20日&#xff0c;2023年度广东省应急测绘保障与安全生产演练在台山市赤溪镇鱼塘湾举行。本次演练由广东自然资源厅主办&#xff0c;广东省国土资源测绘院、江门市自然资源局和台山市人民政府承办。在省市各指导单位与参演单位的多方协同与指挥下&#xff0c;应急测绘保障与安…

常用PLC学习资料下载地址

常见PLC的资料一般在官网都可以找到&#xff0c;今天整理一下&#xff0c;把西门子、三菱、欧姆龙、汇川四家品牌的官方下载地址直接贴出来供大家直接使用。 1、汇川技术官方网站 汇川技术 - 推进工业文明 共创美好生活 (inovance.com)https://www.inovance.com/2、汇川技术资料…

TCP重传、滑动窗口、流量控制、拥塞控制

目录 重传机制 #超时重传 SACK 方法 Duplicate SACK 滑动窗口 流量控制 窗口关闭 拥塞控制 慢启动 拥塞避免算法 拥塞发生 快速恢复 重传机制 TCP 实现可靠传输的方式之一&#xff0c;是通过序列号与确认应答。 在 TCP 中&#xff0c;当发送端的数据到达接收主机时…

rancher部署flink集群

rancher版本&#xff1a;v2.6.8 k8s版本&#xff1a;v1.22.13rke2r1 flink集群版本&#xff1a;1.15.0 flink安装模式&#xff1a;session cluster 写在前面&#xff1a;因为参照官网的说明安装过程中出现了很多问题&#xff0c;特记录于此&#xff0c;避免后续重复踩坑 目…

FE_CSS 精灵图技术 字体图标 CSS三角

一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度。 因此&#xff0c;为了有效地减少服务器接收和发送请求的次数&a…

国内申请日本专利有哪些流程?

日本2004年修订的实用新型法已经于2005年4月1日生效&#xff0c;在日本&#xff0c;“专利”这一概念限于发明&#xff0c;实用新型和外观设计均不称为专利。实用新型授权后&#xff0c;就叫实用新型权&#xff0c;并不叫专利权。而且&#xff0c;发明、实用新型和外观设计是“…

掘金Tiktok电商比亚马逊刺激多了

鑫优尚电子商务&#xff1a;万亿跨境电商市场&#xff0c;聚光灯照在了Tiktok&#xff08;抖音海外版&#xff09;身上。 美国、巴西、俄罗斯、越南……2017年年末才正式出海的Tiktok&#xff0c;仅在2年后便覆盖了150个国家和地区&#xff0c;多次登顶App Store下载量首位。 …

使用 Vaex 处理具有 2 亿行的数据集

在这篇文章中,我们生成了 2 亿条时序人工数据,有 4 列,大小接近 12GB。使用 Pandas 库无法读取数据集并对其进行探索和可视化。与 pandas 相比,能够将字符串处理速度提高10-1000 倍。比spark快近十倍。 Pandas是用于数据科学案例研究的最受欢迎的库之一。它是探索性数据分…

rtthread默认网卡的操作

设置网卡优先级 在 RT-Thread 操作系统中&#xff0c;可以通过修改网卡的优先级来设置默认网卡。优先级越高的网卡会被优先选择为默认网卡。 下面介绍一些设置默认网卡优先级的方法&#xff1a; 在 RT-Thread 的网络配置文件 rtconfig.h 中&#xff0c;可以通过修改 NETIF_P…