免费入驻的外贸网站绵阳企业网站建设

diannao/2026/1/22 21:18:10/文章来源:
免费入驻的外贸网站,绵阳企业网站建设,有引导页的网站,惠州网络公司网站建设首先我们知道vue里面包含有父子组件 但是你知道如果要进行一个element的手动组件封装 怎么封装吗 1首先第一步 首先我们建立一个组件 最好设置在一个文件目录下比如components 只是一个普通的组件 叫做OneButton.vue templatebutton classone-buttontemplatebutton classone-button按钮组件/button/templatescriptexport default {name: oneButton} /scriptstyle langscss /style 要想使用该组件 就需要进行全局注册 就是在main.js里面注册了 import Vue from vueimport App from ./App.vue// 第一步导入button组件import OneButton from ./components/button.vueVue.config.productionTip false// 第二步注册组件,设置(组件名组件)Vue.component(OneButton.name, OneButton)new Vue({render: h h(App)}).$mount(#app) 注册完成以后就可以进行使用了 templatediv idappone-button按钮/one-button/div /templatescript export default {name: App,components: {} } /scriptstyle langscss /style 到这里 我们可以看到 就会显示一个普通按钮了 但是吧 这样的封装过于简单 能不能实现更加复杂的操作呢 于是 我们需要封装一个有element-ui风格的组件 好 那我们继续实现 我们先让文字可以自由的输入 那就要利用插槽了 templatebutton classone-buttonspanslot/slot/span/button/template 我们的文件需要做以上处理 templatedivone-button歌谣/one-buttonone-button帅气/one-buttonone-button关注我/one-button/div/template 加上基本样式 style langscss.one-button{display: inline-block;line-height: 1;white-space: nowrap;cursor: pointer;background: #ffffff;border: 1px solid #dcdfe6;color: #606266;-webkit-appearance: none;text-align: center;box-sizing: border-box;outline: none;margin: 0;transition: 0.1s;font-weight: 500;//禁止元素的文字被选中-moz-user-select: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;padding: 12px 20px;font-size: 14px;border-radius: 4px;:hover,:hover{color: #409eff;border-color: #c6e2ff;background-color: #ecf5ff;}}/style 这样文字的效果就实现了 到了这里 你又想element里面可以控制type属性控制按钮样式 怎么可以实现呢 父元素传递type值 templatediv idappdiv classrowone-button按钮/one-buttonone-button typeprimaryprimary按钮/one-buttonone-button typesuccesssuccess按钮/one-buttonone-button typeinfoinfo按钮/one-buttonone-button typedangerdanger按钮/one-buttonone-button typewarningwarning按钮/one-button/div/div/template 子元素接收当然props了 export default {name: oneButton,// 此时对props进行校验值接收string类型的type值props: {type:{type: String// 设置默认值如果不传值那么使用defaultdefault: default}},created () {console.log(this.type)//defalut primary success info danger warning}} 做过处理以后根据type就可以实现数据的操作了 动态绑定样式 templatebutton classone-button :classone-button-${type}spanslot/slot/span/button/template 最后定义好样式 .one-button-primary{color:#fff;background-color: #409eff;border-color: #409eff;:hover,:focus{background: #66b1ff;background-color: #66b1ff;color: #fff;}}.one-button-success{color:#fff;background-color: #67c23a;border-color: #67c23a;:hover,:focus{background: #85ce61;background-color: #85ce61;color: #fff;}}.one-button-info{color:#fff;background-color: #909399;border-color: #909399;:hover,:focus{background: #a6a9ad;background-color: #a6a9ad;color: #fff;}}.one-button-warning{color:#fff;background-color: #e6a23c;border-color: #e6a23c;:hover,:focus{background: #ebb563;background-color: #ebb563;color: #fff;}}.one-button-danger{color:#fff;background-color: #f56c6c;border-color: #f56c6c;:hover,:focus{background: #f78989;background-color: #f78989;color: #fff;}} 运行 nice呀 有没有 这个时候你可能会想 如果设置plain属性怎么设置呢 和type类型相同我们只要将样式先设置好然后通过父组件传递过来的值进行判断就可以设置plain属性了。 和type类型相同我们只要将样式先设置好然后通过父组件传递过来的值进行判断就可以设置plain属性了。第一步:父组件组件传递plain值templatediv idappdiv classrowone-button plain按钮/one-buttonone-button plain typeprimaryprimary按钮/one-buttonone-button plain typesuccesssuccess按钮/one-buttonone-button plain typeinfoinfo按钮/one-buttonone-button plain typedangerdanger按钮/one-buttonone-button plain typewarningwarning按钮/one-button/div/div/template第二步子组件接收负组件传递的数据同样进行props校验并且设置默认值为falseprops: {plain: {type: Boolean,default: false}}第三步:通过绑定类名的方法动态控制样式由于plain类型是布尔值所以在类型中我们使用对象的形式来控制样式templatebutton classone-button :class[one-button-${type},{is-plain:plain}]spanslot/slot/span/button/template第四步设置不同类型的样式由于plain类型是以对象的形式在类中定义的所以使用获取属性的方法定义样式// 朴素按钮样式.one-button.is-plain{:hover,:focus{background: #fff;border-color: #489eff;color: #409eff;}}.one-button-primary.is-plain{color: #409eff;background: #ecf5ff;:hover,:focus{background: #409eff;border-color: #409eff;color: #fff;}}.one-button-success.is-plain{color: #67c23a;background: #c2e7b0;:hover,:focus{background: #67c23a;border-color: #67c23a;color: #fff;}}.one-button-info.is-plain{color: #909399;background: #d3d4d6;:hover,:focus{background: #909399;border-color: #909399;color: #fff;}}.one-button-warning.is-plain{color: #e6a23c;background: #f5dab1;:hover,:focus{background: #e6a23c;border-color: #e6a23c;color: #fff;}}.one-button-danger.is-plain{color: #f56c6c;background: #fbc4c4;:hover,:focus{background: #f56c6c;border-color: #f56c6c;color: #fff;}} nice呀 有没有 round属性也是一样 button组件的round属性设置round属性和之前的相似只要在组件中定义好了样式动态获取属性值即可。获取属性值round: {type: Boolean,default: false}round样式.one-button.is-round{border-radius: 20px;padding: 12px 23px;} 看看效果 nice有没有 到这里 我们看看字体图标怎么实现 字体图标也是要引入的 第一步在main.js中引入字体图标import ./assets/fonts/iconfont.css第二步将下载的字体图标css文件中的类名做修改我将icon全部改为了one-icon并且将初始的iconfont类改为了[class*one-icon]当类名中有one-icon时使用如下[class*one-icon] {font-family: iconfont !important;font-size: 16px;font-style: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}.one-icon-bluetoothoff:before {content: \e697;}第三步父组件传递图标名子组件接收并且放到图标中父组件传值div classrowone-button iconbluetoothon/one-buttonone-button typeprimary iconcamera照相机/one-buttonone-button typesuccess iconcourse/one-buttonone-button typeinfo iconbluetooth_link/one-buttonone-button typedanger iconaddto/one-buttonone-button typewarning iconaudio/one-button/div子组件接收icon: {type: String,default: }使用接收到的字体图标。在没有传入icon时隐藏i标签在slot插槽没有传入值时不显示span标签templatebutton classone-button :class[one-button-${type},{is-plain:plain,is-round:round,is-circle:circle,}]i v-ificon :classone-icon-${icon}/i!-- 如果没传入文本插槽则不显示span内容 --span v-if$slots.defaultslot/slot/span/button/template第四步设置icon配套样式使图标和文字之间有一定间隔.one-button [class*one-icon-]span{margin-left: 5px;} 查看效果 nice有没有 到这里 我们想一想element里面还有点击事件怎么实现 button组件中的点击事件我们在使用组件时直接给组件定义事件是不会被触发的。我们需要在组件中定义一个点击事件这个点击事件不进行其他操作只出发父组件中的点击事件。组件中的定义点击事件templatebutton classone-button :class[one-button-${type},{is-plain:plain,is-round:round,is-circle:circle,}]clickhandleClicki v-ificon :classone-icon-${icon}/i!-- 如果没传入文本插槽则不显示span内容 --span v-if$slots.defaultslot/slot/span/button/template定义一个点击事件这个点击事件的作用是调用父组件中的点击事件并且回调 methods: {handleClick (e) {this.$emit(click, e)}}父组件在使用时定义自己的点击事件其本质是子组件中的点击事件触发父组件中的点击事件。div classrowone-button clickgetInfo按钮/one-button/divmethods: {getInfo () {console.log(获取信息)//获取信息}} 就很nice 按钮中会设置是否禁用 我们可以通过父子传值 给子组件设置样式实现 button组件中的disabled属性和之前相似只要父子组件传值并且动态获取这个值并且赋给disabled属性,并且设置一个disabled样式即可。div classrowone-button clickgetInfo disabled按钮/one-button/divtemplatebutton classone-button :class[one-button-${type},{is-plain:plain,is-round:round,is-circle:circle,is-disabled:disabled}]clickhandleClick:disableddisabledi v-ificon :classone-icon-${icon}/ispan v-if$slots.defaultslot/slot/span/button/templatedisabled: {type: Boolean,default: false}disabled样式.one-button.is-disabled{cursor: no-drop;} 至此 element中的button组件就封装完成了 是不是很nice 下次有时间继续封转其他的 看看封装的总代码 templatebutton classone-button :class[one-button-${type},{is-plain:plain,is-round:round,is-circle:circle,is-disabled:disabled}]clickhandleClick:disableddisabledi v-ificon :classone-icon-${icon}/i!-- 如果没传入文本插槽则不显示span内容 --span v-if$slots.defaultslot/slot/span/button /templatescriptexport default {name: oneButton,// 此时对props进行校验值接收string类型的type值props: {type: {type: String,// 设置默认值如果不传值那么使用defaultdefault: defalut},plain: {type: Boolean,default: false},round: {type: Boolean,default: false},circle: {type: Boolean,default: false},icon: {type: String,default: },disabled: {type: Boolean,default: false}},created () {// 显示所有插槽// console.log(this.$slots)},methods: {// 定义一个点击事件这个点击事件的作用是调用父组件中的点击事件并且回调handleClick (e) {this.$emit(click, e)}} } /scriptstyle langscss scoped.one-button{display: inline-block;line-height: 1;white-space: nowrap;cursor: pointer;background: #ffffff;border: 1px solid #dcdfe6;color: #606266;-webkit-appearance: none;text-align: center;box-sizing: border-box;outline: none;margin: 0;transition: 0.1s;font-weight: 500;//禁止元素的文字被选中-moz-user-select: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;padding: 12px 20px;font-size: 14px;border-radius: 4px;:hover,:focus{color: #409eff;border-color: #c6e2ff;background-color: #ecf5ff;}} .one-button-primary{color:#fff;background-color: #409eff;border-color: #409eff;:hover,:focus{background: #66b1ff;background-color: #66b1ff;color: #fff;}}.one-button-success{color:#fff;background-color: #67c23a;border-color: #67c23a;:hover,:focus{background: #85ce61;background-color: #85ce61;color: #fff;}}.one-button-info{color:#fff;background-color: #909399;border-color: #909399;:hover,:focus{background: #a6a9ad;background-color: #a6a9ad;color: #fff;}}.one-button-warning{color:#fff;background-color: #e6a23c;border-color: #e6a23c;:hover,:focus{background: #ebb563;background-color: #ebb563;color: #fff;}}.one-button-danger{color:#fff;background-color: #f56c6c;border-color: #f56c6c;:hover,:focus{background: #f78989;background-color: #f78989;color: #fff;}} // 朴素按钮样式 .one-button.is-plain{:hover,:focus{background: #fff;border-color: #489eff;color: #409eff;} } .one-button-primary.is-plain{color: #409eff;background: #ecf5ff;:hover,:focus{background: #409eff;border-color: #409eff;color: #fff;} } .one-button-success.is-plain{color: #67c23a;background: #c2e7b0;:hover,:focus{background: #67c23a;border-color: #67c23a;color: #fff;} } .one-button-info.is-plain{color: #909399;background: #d3d4d6;:hover,:focus{background: #909399;border-color: #909399;color: #fff;} } .one-button-warning.is-plain{color: #e6a23c;background: #f5dab1;:hover,:focus{background: #e6a23c;border-color: #e6a23c;color: #fff;} } .one-button-danger.is-plain{color: #f56c6c;background: #fbc4c4;:hover,:focus{background: #f56c6c;border-color: #f56c6c;color: #fff;} } // round属性 .one-button.is-round{border-radius: 20px;padding: 12px 23px; } // circle属性 .one-button.is-circle{border-radius: 50%;padding: 12px; } // icon配套样式 .one-button [class*one-icon-]span{margin-left: 5px; } // disabled属性 .one-button.is-disabled{cursor: no-drop; } /style

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

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

相关文章

设计网站推荐html保定网站开发公司

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1&#…

ajax网站开发技术培训方案

该系统将采用B/S结构模式,前端部分主要使用html、css、JavaScript等技术,使用Vue和ElementUI框架搭建前端页面,后端部分将使用Nodejs来搭建服务器,并使用MySQL建立后台数据系统,通过axios完成前后端的交互,…

兰州网站建设价作词做曲网站

目录 前言: 什么是时序图: 时序图的组成元素: 1. 角色(Actor) 2. 对象(Object) 3. 生命线(LifeLine) 4. 激活期(Activation) 5. 消息类型(Message) 6.组合片段(Combined fragment) 时序图的绘制规则:​ 绘制时序图的3步: 1.划清边界&#xf…

jq网站特效插件wordpress 站点描述

1. 前言 null 和 undefined 的区别 ?这是一道基础面试题 很多人都会说 null 是空,undefined 是未定义,这样回答太过于笼统。 面试官反问:null 是空代表没有值是吧,undefined 是未定义也是没有值是吧,都是…

什么星网站做调查问卷的深圳公司注册网址官方

以下是一个通过高级模版安装后典型的Yii应用的目录结构:~~~.├── backend├── common├── console├── environments├── frontend├── nbproject├── tests├── vendor├── composer.json├── composer.lock├── init├── init.bat├── …

asp模版网站如何做优化科技论文发表网

以下有三个版本的memcpy,对于版本3,很多人都很熟悉,它很经典,很多人面试都写这个,可是我不得不说一句,对于类似的问题,最好的回答有两个:一是调用c库,二是使用汇编。用这…

装修网站论坛做cms网站

导读:农历新年将至,祝福的话汇成千言万语都寄托在贺卡之中,也许今年你受到了很多的挫折,又或者是顺顺利利度过了一年。但不管怎么样,不管是哭与笑,人生的年轮都已经转过了一圈。我们唯有继续向前走,不要回头,未来的自己取决于现在的自己。有时候一句不经意的问候,一句…

网站建设宣传视频教程绍兴网站优化

前言:生产linux部署的zookeeper,执行启动脚本后,还是无法使用,故进行重启排查 在zookeeper的bin目录下执行 ./zkServer.sh start-foreground 可实时查看启动日志排查问题 根据上面的日志可以看出,是zoo.cfg配置文件里…

wordpress网站的cdn怎么设置免费自己做网站手机软件

webm是一个开放、免费的媒体文件格式。WebM影片格式是以Matroska(即MKV)容器格式为基础开发的新容器格式,里面包括了VP8影片轨和Ogg Vorbis音轨;其中Google将其拥有的VP8视频编码技术以类似BSD授权开源,而Ogg Vorbis本…

省市建设类网站链接网页制作与网站建设初学者必看教程

在Docker中进行MySQL数据迁移通常涉及将数据从一个MySQL容器导出&#xff0c;并将其导入到另一个容器或主机上的MySQL实例中。以下是一般步骤&#xff1a; 步骤 1: 在源 MySQL 容器中导出数据 进入源 MySQL 容器&#xff1a; docker exec -it <source_mysql_container_name…

网站优化软件推荐做算命网站挣钱么

在上一篇博客&#xff1a;C#曲线分析平台的制作&#xff08;三&#xff0c;三层构架echarts显示&#xff09;中已经完成了后台的三层构架的简单搭建&#xff0c;为实现后面的拓展应用开发和review 改写提供了方便。而在曲线分析平台中&#xff0c;往往有要求时间轴联动功能&…

网站参数保险做的好的网站有哪些内容

在日常生活和工作中&#xff0c;我们经常会遇到需要从Word文档中提取图片的情况。无论是为了单独保存这些图片&#xff0c;还是为了在其他地方使用它们&#xff0c;一键提取Word中的图片都是一个非常实用的技能。提取Word文件中的图片并不是一件复杂的事情&#xff0c;只要掌握…

西安网站建设网站法律咨询免费律师在线咨询

将npm的下载源恢复为默认的官方源&#xff0c;命令如下&#xff1a; npm config set registry https://registry.npmjs.org淘宝官方提供的最新的配置淘宝镜像的方法&#xff0c;命令如下&#xff1a; npm config set registry https://registry.npmmirror.com也可以查看是否修改…

东营北京网站建设多媒体设计与制作毕业设计

win11配置Mask DINO踩坑记录 1 准备工作2 创建python环境和安装detectron22.1 安装前提2.2 安装流程2.2.1 cl.exe的错误2.2.2 SetuptoolsDeprecationWarning的错误 3 MaskDINO运行3.1 运行demo 前情提要&#xff1a;需要复现Mask DINO&#xff0c;但是实验室没有Linux的电脑&am…

网站建设学习浩森宇特霞浦建设局网站

二、MSTPEth-trunk 实验拓扑实验需求及解法 实验拓扑 实验需求及解法 //1.如图所示&#xff0c;配置设备名称和 IP 地址。 //2.在 SW1 与 SW2 之间配置链路聚合协议 LACP&#xff0c;完成以下需求&#xff1a; //2.1 SW1 作为主动端&#xff0c;设置系统优先级为最高。 [SW1]l…

旅游网站排名榜php外贸网站源码

我们都知道&#xff0c;JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类&#xff0c;他们其实都可以理解成工具类&#xff0c;比如我们常见的集合类&#xff0c;日期相关的类&#xff0c;数学相关的类等等&#xff0c;有了这些工具类&#xff0c;你会发现它能很大…

汕头网站制作全过程佛山企业网站设计公司

三、2023年12月GESP Python三级编程题 【三级编程题1】 【试题名称】&#xff1a;小猫分鱼 【问题描述】 海滩上有一堆鱼&#xff0c;N只小猫来分。第一只小猫把这堆鱼平均分为N份&#xff0c;多了i<N条鱼&#xff0c;这只小猫把多的i条鱼扔入海中&#xff0c;拿走了一份…

珠海建设集团网站首页网络工程公司的业务

简单查询insert添加insert可以使用数据库支持的自动生成主键策略&#xff0c;设置useGeneratedKeys”true”&#xff0c;然后把keyProperty 设成对应的列&#xff0c;就搞定了。比如说上面的StudentEntity 使用auto-generated 为id 列生成主键.还可以使用selectKey元素。下面例…