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

网站建设 网页制作上海百网优seo优化公司

网站建设 网页制作,上海百网优seo优化公司,社团网站建设,万户信息 做网站怎么样封装组件使用v-model 使用方法props接受value值,当值发生变化的时候再通过this.$emit("input", newValue),则实现了简单组件的v-model封装,如果不使用第三方UI可以接受到的值使用watch或者计算属性保存,然后再通过事件派发自己保存…

封装组件使用v-model 

使用方法props接受value值,当值发生变化的时候再通过this.$emit("input", newValue),则实现了简单组件的v-model封装,如果不使用第三方UI可以接受到的值使用watch或者计算属性保存,然后再通过事件派发自己保存的值

$attrs可以透传组件上的属性,如果使用 props接收了某个属性,则从$attrs移除这个属性

代码:如elInput组件

 保存值写法可使用计算属性也可以使用监听器

<template><div class="switchWrap"><el-inputref="refInput"v-bind="$attrs":value="internalValue"@input="updateValue"></el-input></div>
</template><script>
export default {props: {value: [Boolean, String, Number],},data() {return {};},computed: {internalValue() {return this.value;},},methods: {updateValue(newValue) {this.$emit("input", newValue); // 触发内部 input 事件 让父组件可以v-model绑定},},mounted() {},
};</script>

 不保存值可直接派发值

<template><div class="switchWrap"><el-inputref="refInput"v-bind="$attrs":value="value"@input="updateValue"></el-input></div>
</template><script>
export default {props: {value: [Boolean, String, Number],},data() {return {};},computed: {},methods: {updateValue(newValue) {this.$emit("input", newValue); // 触发内部 input 事件 让父组件可以v-model绑定},},mounted() {},
};</script>

 使用方法

 <elInput v-model="value"></elInput >

 UI组件封装方法

 $attrs和$slots可以透传属性和插槽 然后通过解构插槽——>#[插槽名]=value 就可以获取传递的值,再通过遍历组件原型上的方法,然后把原型上的方法放在组件上,就可以使用ref透传

使用计算属性 slotsKeys 和 scopedSlotsKeys

 是为了动态获取父组件传递的具名插槽($slots)和作用域插槽($scopedSlots),

  并根据需要排除掉某些已使用的插槽,以便在渲染时可以有选择地展示插槽内容。

<template><div class="switchWrap"><el-inputref="refInput"v-bind="$attrs":value="value"@input="updateValue"><template v-for="slotName in scopedSlots" #[slotName]="scoped"><slot :name="slotName" v-bind="scoped"></slot></template><template v-for="slotName of namedSlot" v-slot:[slotName]><slot :name="slotName"></slot></template></el-input></div>
</template><script>
export default {props: {value: [Boolean, String, Number],},data() {return {usedSlots: [], // 已使用的插槽};},computed: {// 使用计算属性 namedSlot 和 scopedSlots//  是为了动态获取父组件传递的具名插槽($slots)和作用域插槽($scopedSlots),//  并根据需要排除掉某些已使用的插槽,以便在渲染时可以有选择地展示插槽内容。namedSlot() {return Object.keys(this.$slots).filter((key) => !this.usedSlots?.includes(key));},scopedSlots() {return Object.keys(this.$scopedSlots).filter((key) => !this.usedSlots?.includes(key));},},methods: {updateValue(newValue) {this.$emit("input", newValue); // 触发内部 input 事件 让父组件可以v-model绑定},},mounted() {for (let key in this.$refs.refInput) {if (typeof this.$refs.refInput[key] == "function") {this[key] = this.$refs.refInput[key];}}},
};
</script>

 使用方法

       <inputUi v-model="inputValue" @input="getInfo" ref="refInput"><template #prepend>Http://</template></inputUi>

http://www.hengruixuexiao.com/news/21098.html

相关文章:

  • 营销网站策划谷歌商店下载官方正版
  • wordpress个人网站淘宝搜索关键词排名查询工具
  • 网站建设具体步骤免费制作链接
  • php网站开发的相关技术南京百度
  • 九江市做网站的公司如何制作一个自己的网站
  • 免费申请空间网站今日头条热搜榜前十名
  • 石家庄营销型网站制作优化设计方案
  • 178网站建设网站主页
  • 企业网站制作模板免费下载竞价推广营销
  • 凡客建网站线上推广软件
  • 仿站教程色盲测试图
  • 猪八戒做网站互联网优化是什么意思
  • 做网站外包公司名称腾讯企点官网
  • 网站做视频的软件推广普通话奋进新征程手抄报
  • 可以分销的平台百度快速优化推广
  • 长沙大的建网站公司百度快照替代
  • 做相册视频的网站网络营销推广实训报告
  • 网站制作网站开发ple id充值微信推广平台怎么做
  • 业务型网站做seo网店代运营骗局流程
  • 个人备案 网站简介怎么写网站分享
  • 房产信息网网址seo网站是什么意思
  • 怎样在设计网站做图赚钱吗谷歌推广方案
  • 商城类网站建设方案南宁seo排名优化
  • 网站基本特点整站优化代理
  • 甘肃做网站哪家好怎么做好网站营销推广
  • 在百度上做网站多少钱重庆企业seo
  • 湄洲岛网站建设代运营一家店铺多少钱
  • 空壳主体接入网站小红书关键词搜索量查询
  • 最好的网站建设多少钱share群组链接分享
  • wordpress 国外服务器网站关键词优化外包