当前位置: 首页 > news >正文

香港特别行政区网站建设_网站建设公司_网站开发_seo优化

企业网站收费,河南哪里网站建设公司,装修素材的网站大全,网站开发公司取名本次对el-input进行简单封装进行演示 封装很简单#xff0c;就给激活样式的边框(主要是功能) 本次封装主要使用到vue自带的几个对象 $attrs#xff1a;获取绑定在组件上的所有属性$listeners: 获取绑定在组件上的所有函数方法$slots#xff1a; 获取应用在组件内的所有插槽 … 本次对el-input进行简单封装进行演示 封装很简单就给激活样式的边框(主要是功能) 本次封装主要使用到vue自带的几个对象 $attrs获取绑定在组件上的所有属性$listeners: 获取绑定在组件上的所有函数方法$slots 获取应用在组件内的所有插槽 1、属性传递 element 的input组件有很多属性 想要实现在封装好后的组件上使用el-input组件的属性会直接传递到el-input组件上包括v-model。在组件中可以使用this.$attrs获取所有绑定在组件上的属性(不包括方法)这样我们就可以在封装的组件内使用v-bind$attrs直接把属性传递到内部组件上。在下列案例中由于v-model是:value 和 input两个组合的语法糖$attrs只能获取属性所以只能传递:value属性 1.1、父组件 templatediv classwrapper my-input v-modelval/my-input/div /templatescriptimport MyInput from /components/MyInputexport default {components: {MyInput,},data() {return {val: 111,}},methods: {inputChange(val){console.log(val);}}} /scriptstyle langscss scoped.wrapper {padding: 10vh;} /style1.2、子组件 templateel-input v-bind$attrs/el-input /template scriptexport default {created() {console.log(attrs,this.$attrs);}} /script style langscss scoped ::v-deep {.el-input__inner:focus {border-color: red; } }/style1.3、效果 这时候给输入框输入值是无效的因为目前只能把value属性绑定到el-input上并没有把input函数绑定上去所以不能修改父组件传过来的value的值。 2、方法传递 element的组件也有很多方法比如change等函数 想要实现在封装好后的组件上使用el-input组件的方法会直接传递到el-input组件上。在组件中可以使用this.$listeners获取所有绑定在组件上的属性(不包括属性)这样我们就可以在封装的组件内使用v-on$listeners直接把方法传递到内部组件上。在下列案例中由于v-model是:value 和 input两个组合的语法糖$listeners只能获取属性所以结合上面$attrsjiu可以完整的实现v-model的效果了 2.1、父组件 templatediv classwrapper my-input v-modelval changeinputChange/my-input/div /templatescriptimport MyInput from /components/MyInputexport default {components: {MyInput,},data() {return {val: 111,}},methods: {inputChange(val){console.log(inputChange, val);}}} /script2.2、子组件 templateel-input v-bind$attrs v-on$listeners/el-input /template scriptexport default {created() {console.log(attrs,this.$attrs);console.log(listeners,this.$listeners);}} /script style langscss scoped ::v-deep {.el-input__inner:focus {border-color: red;} }/style2.3、效果 这时候搭配$attrs就可以实现v-model的完整效果了以及change函数也会传递过去 3、插槽传递 element的组件也包括了很多的插槽 想要给封装好后的组件使用的插槽传递到el-input中在组件中可以使用this.$attrs获取所有绑定在组件上的插槽这样我们就可以在封装的组件内使用v-for(val, key) in $slots所有插槽遍历放到组件中当作组件的插槽注意插槽传参也要处理(我这里没处理) 3.1、父组件 templatediv classwrapper my-input v-modelval changeinputChangetemplate slotprependHttp:///templateel-button slotappend iconel-icon-search/el-button/my-input/div /templatescriptimport MyInput from /components/MyInputexport default {components: {MyInput,},data() {return {val: 111,}},methods: {inputChange(val){console.log(inputChange, val);}}} /scriptstyle langscss scoped.wrapper {padding: 10vh;} /style3.2、子组件 templateel-input v-bind$attrs v-on$listenerstemplate v-for(val, key) in $slotsslot :namekey/slot/template/el-input /template scriptexport default {created() {console.log(attrs,this.$attrs);console.log(listeners,this.$listeners);console.log(slots,this.$slots);}} /script style langscss scoped ::v-deep {.el-input__inner:focus {border-color: red;} }/style3.3、效果 4、ref伪传递(适用于vue3) 为什么说伪传递呢因为在vue中根本就拿不到外层组件的ref属性所以只能另换思路你要用ref无非就是想调用组件里面的函数。那我封装的组件里面可以把被封装的组件的函数直接提取出来当作我封装组件的函数即可实现适用于Vue3vue2会卡死 4.1、父组件 templatediv classwrapper my-input refmuInput v-modelval changeinputChangetemplate slotprependHttp:///templateel-button slotappend iconel-icon-search/el-button/my-input/div /templatescriptimport MyInput from /components/MyInputexport default {components: {MyInput,},data() {return {val: 111,}},mounted() {this.$refs.muInput.focus()},methods: {inputChange(val){console.log(inputChange, val);}}} /scriptstyle langscss scoped.wrapper {padding: 10vh;} /style4.2、子组件 templateel-input refinput v-bind$attrs v-on$listenerstemplate v-for(val, key) in $slots #[key]slot :namekey/slot/template/el-input /template scriptexport default {mounted() {console.log(attrs,this.$attrs);console.log(listeners,this.$listeners);console.log(slots,this.$slots);for (const [key, value] of Object.entries(this.$refs.input)) {this[key] value}}} /script style langscss scoped ::v-deep {.el-input__inner:focus {border-color: red;} }/style
http://www.lebaoying.cn/news/3872.html

相关文章:

  • 江苏城乡建设学校网站建筑师必看的16部纪录片
  • 建一个小型购物网站要有服务器wordpress js图片
  • 网站域名空间合同南京今天重大新闻事件
  • wordpress 打车廊坊seo
  • python 网站开发 案例东营建设网站公司电话号码
  • 厦门安能建设公司网站用数据库代码做家乡网站
  • 简述电子商务网站建设方案各种网站开发工具
  • 网站风格要求上海装修公司哪家性价比高
  • 中国网站建设哪家公司好邯郸房地产网站建设
  • 宿豫区建设局网站wordpress调用子目录名称
  • 网站不备案做优化工信部官网
  • 绥化市新闻最新消息安卓优化大师官网
  • 月夜影视在线观看免费完整版韩剧谷歌优化招聘
  • html简单网页成品主题百度seo是什么意思呢
  • 蚌埠铁路建设监理公司网站江淮网站开发
  • 个人网站备案需要哪些宁波网站建设小程序开发
  • 关于加强网站建设工作的意见网页美工设计时色彩搭配的注意事项
  • iis做网站视用centos搭建wordpress
  • 网站开发到发布软文范例大全800
  • 西安互联网公司集中在哪里兰州优化网站公司
  • 甘肃省住房建设厅网站证书查询wordpress图片上传卡住
  • 旅行网站模板秦皇岛做网站汉狮网络
  • python 网站开发 prf清智优化北京
  • 网站开发毕业设计收获与体会个人小程序开发教程
  • 优化网站具体如何做常州小程序开发报价
  • 高端的镇江网站建设肇庆seo排名外包
  • 做海报素材的网站什么是网站被黑
  • 信息类网站上海高新企业名单查询
  • 深圳做网站最好的公司seo快速排名软件网站
  • 聊城建设银行网站广告公司官网