vue一步一步带你封装一个按钮组件

# 前言
本文主要对子组件的封装做一个了解
首先我们直接看一下代码显示 首先是今天有一个学妹
过来问我如何封装子组件

# 实现效果

首先这个组件是基于eleemnt-ui进行封装的
我们看一眼实现效果

 

有了实现效果 之后
我们一起来看看他的父子组件

有了实现效果 之后
我们一起来看看他的父子组件

父组件

   <geyaoInputSearchclass="r"placeholder="按服务器名称搜索"ref="searchInput"@search="searchData"></geyaoInputSearch>


子组件

<template><!-- --><div class="geyao-input-search"><!--  封装带有文本框的按钮模式  --><!--   placeholder 按钮的提示文字 --><!--  inputText文本框绑定的值  --><!--  获取焦点进行一个置空操作  --><!--    --><el-input:class="['input-content', inputText != '' ? 'input-hover' : '']":placeholder="inputPlaceHolder"v-model="inputText"@focus="clearPlaceHolder()"@blur="setPlaceHolder()"@input="changeContent()"@keyup.enter.native="searchEnterFun">
​<span slot="suffix" @click="clearText"><i class="eicon e-error icon-search"></i></span></el-input><el-buttonclass="search-content":class="searchBtn ? 'btnOn' : 'btnOff'"icon="eicon e-search"@click="searchData"></el-button></div>
</template>
​
<script>
export default {data() {return {inputText: '',searchBtn: false, //判断搜索框是否有输入的状态
​/*按钮框的提示文字*/inputPlaceHolder: ''}},props: {placeholder: {type: String,default: '请输入内容'}},watch: {inputText: function(newValue, oldValue) {this.changeContent()}},created() {this.inputPlaceHolder = this.placeholder},methods: {clearText() {this.inputText = ''this.searchData()},/*获取焦点就将placehoder置空*/clearPlaceHolder() {this.inputPlaceHolder = ''},setPlaceHolder() {this.inputPlaceHolder = this.placeholder},//监听搜索框的输入状态来改变搜索按钮changeContent() {if (this.inputText != '') {this.searchBtn = true} else {this.searchBtn = false}},searchData() {this.$emit('search', this.inputText)
​},searchEnterFun(e) {var keyCode = window.event ? e.keyCode : e.whichif (keyCode == 13) {this.searchData()}}}
}
</script>
​
<style lang="scss">
.geyao-input-search {.input-content {/*宽度200px*/width: 200px;/*设置radio样式*/.el-input__inner {border-radius: 2px 0 0 2px;padding: 0 10px;}
​.icon-search {display: none;}}.input-hover {&:hover {.icon-search {font-size: 15px;color: #cccccc;display: inline-block;}}.el-input__inner:focus + .el-input__suffix {.icon-search {display: inline-block;}}}.search-content {font-size: 14px;width: 36px;height: 32px;border-left: 0;padding: 0;border-radius: 0 2px 2px 0;background: #f5f5f5;color: #999999;border-color: #d9d9d9;box-sizing: border-box;-webkit-box-sizing: border-box;vertical-align: top;}.btnOn {background: #337dff;color: #ffffff;border-color: #337dff;}.btnOff {background: #f5f5f5;color: #999999;border-color: #d9d9d9;}.el-input__suffix {top: 8px;right: 9px;cursor: pointer;}.icon-search {font-size: 15px;color: #cccccc;}
}
</style>


# 解释
首先父子组件怎么引入就不多说了
直接说主要知识点 从上向下理解
# 第一行
 class修改绑定一个类 一个三元运算符

# 第二行
 inputPlaceHolder是父亲组件的值 直接父子组件传值
 值为空的时候

 # 第三行
获取焦点的时候把inputPlaceHolder置空

# 第四行
失去焦点的时候将inputPlaceHolder显示

# 第五行
输入的时候父子触发显示X号按钮

我是歌谣 放弃很容易 但是坚持一定很酷

 

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

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

相关文章

机器学习基础--一些基本的概念

前言 开始重新巩固一下机器学习的内容&#xff0c;先从基本的一些概念和定义开始。 本文介绍的内容如下所示&#xff1a; 机器学习的基本定义局部最优和全局最优机器学习、深度学习、数据挖掘、大数据之间的关系为什么要使用机器学习 1. 机器学习的基本定义 机器学习算法是…

[论文笔记]基于 CNN+双向LSTM 实现服饰搭配的生成

论文&#xff1a;《Learning Fashion Compatibility with Bidirectional LSTMs》 论文地址&#xff1a;https://arxiv.org/abs/1707.05691 代码地址&#xff1a;https://github.com/xthan/polyvore 1. 简介 时尚搭配推荐的需求越来越大&#xff0c;本文是基于两个方面的时尚…

WangEdit富文本编辑器增加上传视频功能

乘着今天中午的时间 对以前项目的一个需求进行一定的处理 前天去了甲方公司 接到了了一个新的需求 就是可以把项目的一个富文本的编辑器可以设置为能够上传视频 于是乎 就要对vue里面的这个组件进行操作了 首先我们可以看一眼官网的文档 需要用到的就直接到官网文档进行查询即可…

大学生应当趁早谋划未来

最近&#xff0c;有几个CSDN网友&#xff0c;主要是在校大学生&#xff0c;遇到了一些困惑&#xff0c;寻求我的“解惑”。我的表弟&#xff0c;大四即将毕业&#xff0c;也是如此。上大学的时候&#xff0c;我也经常遇到困惑&#xff0c;非常迷茫&#xff0c;我非常能理解他们…

[论文笔记]Outfit Compatibility Prediction and Diagnosis with Multi-Layered Comparison Network

Outfit Compatibility Prediction and Diagnosis with Multi-Layered Comparison Network 论文题目&#xff1a;Outfit Compatibility Prediction and Diagnosis with Multi-Layered Comparison Network 论文地址&#xff1a;https://arxiv.org/abs/1907.11496 代码&#xf…

关于如何参与到开源项目中《How To Succeed In Open Source ( In Ways You Haven't Considered Yet )》...

转自&#xff1a;http://gaslight.co/blog/how-to-succeed-in-open-source-in-ways-you-havent-considered-yet It’s Easy to Feel Entitled in the Open Source World A while back, it was easy to think of open source projects as real products. I think that I thought…

[论文笔记]弱监督条件下基于相似性条件学习的服饰搭配生成

论文&#xff1a;《Learning Similarity Conditions Without Explicit Supervision》 论文地址&#xff1a;https://arxiv.org/pdf/1908.08589.pdf 代码地址&#xff1a;https://github.com/rxtan2/Learning-Similarity-Conditions 本文首发于 https://mp.weixin.qq.com/s/WH…

分类法过时了吗?【ZZ】

分类法过时了吗&#xff1f;引用网址: http://www.qiji.cn/baike/contents/122.html 更新日期: 2005年6月09 周四 Posted By ianwest 更多 标签: YAHOO Sina Google 页面工具: [前一项] [后一项] { 发表评论 } 计算机和互联网的出现意味着新阅读时代的来临&#xff0c;如何组织…

神经网络不收敛的 11 个原因及其解决办法

原文&#xff1a;http://theorangeduck.com/page/neural-network-not-working 原文标题&#xff1a;My Neural Network isn’t working! What should I do? 译文作者&#xff1a;kbsc13 联系方式&#xff1a; Github&#xff1a;https://github.com/ccc013 知乎专栏&…

7 个有用的 PyTorch 技巧

原文&#xff1a;https://www.reddit.com/r/MachineLearning/comments/n9fti7/d_a_few_helpful_pytorch_tips_examples_included/ 原文标题&#xff1a;a_few_helpful_pytorch_tips_examples_included 译文作者&#xff1a;kbsc13 联系方式&#xff1a; Github&#xff1a;…

HTML5 CSS3的新交互特性

什么是HTML5和CSS3 HTML和CSS并不难理解。HTML为构成网页的主要语言。通过这种语言&#xff0c;我们可以向计算机说明网页格式、内容、显示效果等等。而CSS则是专 门用来控制网页显示效果的语言。这时候问题出来了&#xff0c;为什么我们要单独使用CSS呢&#xff0c;HTML不是一…

基于Colab Pro Google Drive的Kaggle实战

原文&#xff1a;https://hippocampus-garden.com/kaggle_colab/ 原文标题&#xff1a;How to Kaggle with Colab Pro & Google Drive 译文作者&#xff1a;kbsc13 联系方式&#xff1a; Github&#xff1a;https://github.com/ccc013/AI_algorithm_notes 微信公众号&…

Focal Loss 论文笔记

论文&#xff1a;《Focal Loss for Dense Object Detection》 论文地址&#xff1a;https://arxiv.org/abs/1708.02002 代码地址&#xff1a; 官方 github&#xff1a;https://github.com/facebookresearch/detectrontensorflow&#xff1a;https://github.com/tensorflow/m…

php 构造骚扰短信发送机(仅供学习与参考,请勿用于非法用途)

最近在某宝买东西得罪了某黑心商家。。然后他就疯狂的给我发骚扰短信&#xff0c;烦死了。。。 短信大概就是利用一些网站的手机验证码来实现的。。 所以再被他疯狂骚扰后决定自己动手反击。。 php主要用到了curl的函数库扩展&#xff0c;然后主要要做的还是去抓包分析网站注册…