封装组件库仿elementui<1>

目录

type属性

引入字体图标 

button的点击事件

disabled属性


methods:{//点击事件是外部注册的handleClick(e){this.$emit('click',e)//通知父组件点击了,点了按钮,触发外界的click?传参为事件对象//向父组件派发了click事件}
},

type属性

用到props传参,app向button组件传参数type

- app.vue:
<miao-button type="primary"></miao-button>- button.vue:<button :class="[`miao-button-${type}`]">export default{props:{type:{type:String,default:'default'
}}}

分别设置 plain,round,circle类的图标:

三者都是boolean类型

- app.vue:

<div class="row"><miao-button plain round>sousuo</miao-button><miao-button plain round type="primary">sasa</miao-button><miao-button plain round type="warning">ss</miao-button><miao-button plain round type="success">ss</miao-button><miao-button plain round type="info">ss</miao-button><miao-button plain round type="danger">ss</miao-button><!-- 把type属性传给封装的button组件,plain值bool类型 --></div>

- button.vue

plain:{type:Boolean,default:false},
<button class="miao-button" :class="[`miao-button-${type}`,{'is-plain':plain,'is-round':round,'is-circle':circle}]">

引入字体图标 

在main.js里引入

import './assets/fonts/iconfont.css'

在下载下来的iconfont.css里 把类名全改成miao-icon

像这样:

.miao-icon-bluray:before {content: "\e6a4";
}

然后在button里添加

<button class="miao-button" :class="[`miao-button-${type}`,{'is-plain':plain,'is-round':round,'is-circle':circle}]"><!-- is-plain是个bool值用对象来控制 --><i class="miao-icon miao-icon-camera"></i><span><slot></slot></span></button>

添加了那句:

 <i class="miao-icon miao-icon-camera"></i>

然后所有button都有了camera的icon

但是这里添加属性要两个类:
.miao-icon .miao-icon-camera
用属性选择器:[class*='miao-icon']
*=是包含的意思,只要类名包含miao-icon-,就用如下样式,这样就只要写一个类名就行了

[class*='miao-icon'] {font-family: "iconfont" !important;font-size: 16px;font-style: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;
}

这样这句话就改为:

 <i class=" miao-icon-camera"></i>

.miao-button [class*=miao-icon-]+span{margin-left:5px
}//找到.miao-button元素里的包含miao-icon-的类的后面的span给他加个margin-left

然后发现button里点击事件,直接给组件定义事件无法触发

$slots能够获取所有插槽,只有icon的slots为空就可以不显示文字span

button的点击事件

如果在父组件app.vue里随便一个按钮注册事件:

<miao-button @click="fn">sousuo</miao-button>

会发现点击按钮没有动静

需要在子组件里:

button.vue里:

<button class="miao-button" :class="[`miao-button-${type}`,{'is-plain':plain,'is-round':round,'is-circle':circle}]"@click="handleClick">

添加这个click然后向父组件派发click事件

methods:{//点击事件是外部注册的handleClick(e){this.$emit('click',e)//通知父组件点击了,点了按钮,触发外界的click?传参为事件对象//向父组件派发了click事件}
},

然后就能正常触发了

disabled属性

<button class="miao-button" :class="[`miao-button-${type}`,{'is-plain':plain,'is-round':round,'is-circle':circle,'is-disabled':disabled}]":disabled="disabled"@click="handleClick">

props里添加

disabled:{type:Boolean,default:false}

样式添加:

// disabled属性
.miao-button.is-disabled {cursor: no-drop;opacity: .5;cursor: not-allowed;
}

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

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

相关文章

操作系统基本特性:并发、共享、虚拟、异步

目录 一.并发 1.并发的优势 2.并发的实现 3.并发的应用场景 4.并发的挑战 二.共享 1.共享的优势 2.共享资源的实现机制 3.进程同步和互斥 4.避免冲突和死锁 5.实例分析 文件共享 内存共享 设备共享 三.虚拟 1.虚拟技术的优势 2.虚拟化技术的主要实现 3.实例分…

项目进度管理必备:15款最佳项目进度跟踪工具推荐

15好用的款主流项目进度管理软件&#xff1a;PingCode、Worktile、Trello、Tower、Asana、Smartsheet、Teambition、ClickUp、Wrike、Monday.com、Notion、禅道、飞书、云效、蓝凌。 严格的进度管理有助于更好地控制项目进展&#xff0c;提升团队效率&#xff0c;最终实现项目成…

组合已实现的函数完成K-means算法

本关任务 本关综合前面四个关卡的内容来实现K-means聚类算法。 相关说明 K-means是一类非常经典的无监督机器学习算法&#xff0c;通常在实际应用中用于从数据集中找出不同样本的聚集模式&#xff0c;其基本原理就是类中样本的距离要远远小于类间样本的距离。 K-means聚类算…

减调食谱攻略:美味低卡又健康

早餐主要求质&#xff0c;也就是求营养&#xff0c;更确切的说是“均衡的营养&#xff0c;多重的营养元素”确保每天早餐不重样就差不多了。 早餐主食&#xff1a;蛋羹、糖心水煮蛋&#xff0c;皮蛋瘦肉粥、南瓜粥、小米粥&#xff0c;蒸煮玉米、南瓜、芋头、红薯&#xff0c;…

【Linux】The server quit without updating PID file的几种解决方案

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&#xff0c;我将分享Web前后端开发、人工智能、机器学习、深…

Java使用XWPFTemplate将word填充数据,并转pdf

poi-tl poi-tl&#xff08;poi template language&#xff09;是基于Apache POI的Word模板引擎。纯Java组件&#xff0c;跨平台&#xff0c;代码短小精悍&#xff0c;通过插件机制使其具有高度扩展性。 主要处理区域有这么几个模块: 依赖 <dependency><groupId>…

树算法例子

树算法概述 树(Tree)是一种重要的数据结构,在许多算法中都有广泛的应用。 二叉树和红黑树是两种重要的数据结构,广泛应用于提供高效的数据查询和操作。下面,我将给出二叉搜索树(BST)和红黑树(RB Tree)的基本实现: 1. 二叉搜索树 (Binary Search Tree, BST) 二叉搜…

服务器硬件基础知识及运行维护指南

目录 服务器硬件基础知识 1. 中央处理器&#xff08;CPU&#xff09; 2. 内存&#xff08;RAM&#xff09; 3. 存储设备 4. 主板&#xff08;Motherboard&#xff09; 5. 电源供应器&#xff08;PSU&#xff09; 6. 网络接口卡&#xff08;NIC&#xff09; 7. 冷却系统 …

记忆++入门01

1.数字编码 2. 地点桩 1. 卧室 2.婴儿房 3.卫生间 4.次卧 5.书房 6.厨房 7.餐厅 8.客厅 9.阳台左 10.阳台右

Springboot引入redis启动报错问题的解决

在springboot项目pom文件中添加了下面依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 后面老师说spring-boot-starter-data-redis默认使用的let…

深度学习每周学习总结P10(车牌识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 数据链接 提取码&#xff1a;ppv1 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入、查看数据分类&#xff0c;自定义transform…

2024全国高考作文题解读(Chat GPT 4.0版本)

新课标I卷 阅读下面的材料&#xff0c;根据要求写作。&#xff08;60分&#xff09; 随着互联网的普及、人工智能的应用&#xff0c;越来越多的问题能很快得到答案。那么&#xff0c;我们的问题是否会越来越少&#xff1f; 以上材料引发了你怎样的联想和思考&#xff1f;请写…

【TB作品】MSP430G2553单片机,MSP430 单片机读取 SHT30 传感器并显示数据

使用 MSP430 单片机读取 SHT30 传感器并显示数据 作品功能 本文介绍了如何使用 MSP430 单片机读取 SHT30 温湿度传感器的数据&#xff0c;并通过 OLED 屏幕显示实时的温度和湿度信息。通过此项目&#xff0c;您将学习如何配置 MSP430 的 I2C 接口、读取 SHT30 传感器的数据以…

高考志愿填报有哪些技巧和方法

一年一度高考季&#xff0c;又高考志愿填报的时侯了。高考志愿填报的时侯&#xff0c;需要考虑的因素比较多&#xff0c;有的同学觉是离家越远越好&#xff0c;要放飞自我&#xff0c;家长再也管不了我了。有的同学觉得专业比学校牌子重要&#xff0c;只要报个好专业&#xff0…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:大型机械智能预警系统

三一重工股份有限公司&#xff0c;是由三一集团创建于1994年&#xff0c;通过打破国人传统的“技术恐惧症”坚持自主创新迅速崛起。2011年7月&#xff0c;三一重工以215.84亿美元的市值荣登英国《金融时报》全球市值500强&#xff0c;是迄今唯一上榜的中国机械企业。2012年1月&…

centos7如何备份

在CentOS 7中备份数据是一个重要的任务&#xff0c;可以帮助你在数据丢失或系统故障时恢复信息。以下是一些常用的备份方法&#xff1a; 1. 使用​​rsync​​工具备份 ​​rsync​​是Linux系统中常用的备份工具&#xff0c;它可以备份和同步文件到本地目录、外部硬盘或者通…

AI和机器人引领新一轮农业革命

AI和机器人技术在农业领域的应用正在迅速发展&#xff0c;未来它们可能会实现厘米级精度的自主耕作。 精确种植&#xff1a;AI算法可以分析土壤条件、气候数据和作物生长周期&#xff0c;以决定最佳种植地点和时间。 土壤管理&#xff1a;利用传感器和机器学习&#xff0c;机器…

Android Webview 详解

一 简介 一个基于webkit引擎、展现web页面的控件 Android 4.4前&#xff1a;Android Webview在低版本 & 高版本采用了不同的webkit版本的内核Android 4.4后&#xff1a;直接使用了Chrome内核 1.1 作用 在 Android 客户端上加载h5页面在本地 与 h5页面实现交互 & …

Mybatis配置

1. 核心配置文件 mybatis-config.xml 2. 环境配置 Mybatis可以配置适应多种环境 但每个SqlSessionFactory实例只能选择一种环境 Environment <environments default"development"><environment id"development"><transactionManager type&…

为Android组件化项目搭建Maven私服

概览 文章目录 概览前言搭建 maven 私服服务器环境jdk安装配置nexus安装配置管理创建存储点、仓库 项目中使用 maven 私服上传 module 到仓库自动发布 module手动上传单个aar包 引用仓库中的 modulebuild.gradle引入远程module FAQ开发阶段有些module用远程依赖&#xff0c;有些…