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

阿里云可以做网站最新国际形势分析

阿里云可以做网站,最新国际形势分析,中国十大营销策划公司排名,企业网站硬件设计Vue | 自定义组件双向绑定基础用法 vue 中#xff0c;由于单向数据流#xff0c;常规的父子组件属性更新#xff0c;需要 在父组件绑定相应属性#xff0c;再绑定相应事件#xff0c;事件里去做更新的操作#xff0c;利用语法糖 可以减少绑定事件的操作。 这里就简单的梳…Vue | 自定义组件双向绑定基础用法 vue 中由于单向数据流常规的父子组件属性更新需要 在父组件绑定相应属性再绑定相应事件事件里去做更新的操作利用语法糖 可以减少绑定事件的操作。 这里就简单的梳理一下vue提供的双向更新的语法糖用法水一篇为了节省篇幅只给了关键部分的代码。 vue2 v-model 基础使用 !-- 父组件 -- templatediv classvmodel-testV-model 测试hr /v-model 默认基础类型值 | span{{ val }}/spaninner v-modelval/inner/div /templateexport default {name: VmodelTest,components: { inner },data() {return {val: 11111,}} } !-- 子组件 -- templatediv classinnerbutton clickonUPdate更改/button/div /template script export default {name: Inner,props: {value: {type: [String, Number],default: ,},},data() {return {};},methods: {onUPdate() {// 更新this.$emit(input, new Date().toLocaleString());},}, }; /script简单总结就是 对于父组件 v-model 绑定的值子组件 需要 定义一个 value 的props然后更新时使用 input 事件 去更新值适用于基础类型和对象类型⚠️需要注意的是这种更新是全量更新覆盖式。 比如我 v-model 接受的是一个对象我只想更新对象的 a 属性 // 更新 this.$emit(input, {...this.value,a: new Date().toLocaleString(), });自定义更新事件名 model: 允许一个自定义组件在使用 v-model 时定制 prop 和 event。默认情况下一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event但是一些输入类型比如单选框和复选框按钮可能想使用 value prop 来达到不同的目的。使用 model 选项可以回避这些情况产生的冲突。API — Vue.js input 是默认事件可以自定义需要 在子组件 写一个 model(2.2新增) 属性去更改 model: {prop: value, // 指定是更新valueevent: custom-update-value, // 一般以 update:value 命名 }, props: {value: {type: [Array, Object],default: () {},}, },那么 更新时只需要用新的事件名⚠️原来默认input事件已经失效 // 更新 this.$emit(custom-update-value, {...this.value,a: new Date().toLocaleString(), });sync 修饰符 基础使用 sync 修饰符也双向更新的一个方法更适用于多个属性需要双向更新的场景 首先在父组件中绑定绑定的属性后面跟上sync修饰符 sync 修饰符 | span{{ modelValue3 }}/span inner3 :model-value.syncmodelValue3/inner3子组件更新时 事件名 update: 拼上 属性名 //... props: {modelValue: {type: [Array, Object],default: () {},}, }, //... // 更新 this.$emit(update:modelValue, {...this.value,b: [1, new Date().toLocaleString()], });也是全量更新 ⚠️注意这种方式不支持 model 方式自定义事件名 一次性绑定多个v-bind.sync) 支持 v-bind 一次性绑定多个值的方式 !-- -- sync 修饰符 对象解构传入vbind | span{{ modelValue4 }}/span inner4 v-bind.syncmodelValue4/inner4//...(节省篇幅只给出相应的data) modelValue4: {a: { val: 111 },b: [1, 2] },/** 子组件 **/ props: {a: {type: [Array, Object],default: () {},},b: {type: [Array, Object],default: () {},}, }, //... // 更新 this.$emit(update:a, {...this.a,val: new Date().toLocaleString(), }); this.$emit(update:b, [1, new Date().toLocaleString()]);vue3 v-model 基础使用 父组件传的v-model,子组件用 modelValue 接收 !-- 父组件 -- v-model 默认-对象类型值 | span{{ modelValue1 }}/span inner1 v-modelmodelValue1/inner1子组件 使用 update:modelValue 更新值 !-- 子组件 -- script setup langts const props defineProps([modelValue]) const emit defineEmits([update:modelValue])const onUPdate () {// 更新emit(update:modelValue, {...props.modelValue,a: new Date().toLocaleString(),}); } /script均是全量更新 绑定多个值 !-- 父组件 -- v-model 绑定多个值 | span{{ modelValue2 }} | {{ modelValue21 }}/span inner2 v-model:modelCusValuemodelValue2 v-model:modelCusValue1modelValue21 /inner2/** 子组件 **/ script setup langtsconst props defineProps([modelCusValue, modelCusValue1])const emit defineEmits([update:modelCusValue, update:modelCusValue1])const onUPdate () {// 更新emit(update:modelCusValue, {...props.modelCusValue,a: new Date().toLocaleString(),});emit(update:modelCusValue1, {...props.modelCusValue1,a: new Date().toLocaleString(),});} /script也是全量更新 defineModel 基础使用 此宏为 3.4 新增使用起来比前面的方式稍微简洁一些。装个 vue-eslint-parser 且在 vite.config.ts 做如下配置 plugins, 避免编译器报错。 export default defineConfig({plugins: [vue({// 开启 definModelscript: { defineModel: true }}),]//... })!-- 父组件 -- defineModel() | span{{ modelData }} | {{ modelData1 }} | {{ modelData2 }}/span inner3v-modelmodelData v-model:modelData1modelData1 v-model:modelData2modelData2 /inner3 //... const modelData1 ref({a: 1,b: [1, 2], }) const modelData2 ref({a: 1,b: [1, 2], })此方法在子组件使用 直接使用 属性 value 赋值就行了 script setup langts type modelValueType {a: number | string,b: Arraynumber } let model defineModelmodelValueType({ required: true }) let model1 defineModelmodelValueType(modelData1, { required: true }) let model2 defineModelmodelValueType(modelData2, { required: true, type: Object,default: { a: 0, b: [2,3] } })const onUPdate () {// 更新model.value {...model.value,b: [2, 1],a: new Date().toLocaleString()}model1.value.a new Date().toLocaleString();model2.value.a new Date().toLocaleString();// 或者如下方式// Object.assign(model.value, { a: new Date().toLocaleString() }); } /script这种方式 支持单个属性更新全量更新只需全部赋值比较灵活 最后 若行文有误望评论区交流。
http://www.hkea.cn/news/14528390/

相关文章:

  • 怎么样自学做网站做网站佛山
  • 建设银行网站邮箱织梦网站地图在线生成
  • 怎么建立信息网站平台公司做哪个网站比较好
  • 站长工具ip查询苏州网站设计公司兴田德润在哪里呢
  • 商丘网站建设设计中小微企业税收政策
  • 中山建设网站首页开建筑公司取名字如何取好旺
  • 西安开发网站建设淮北做网站公司
  • sae 企业网站美食网站的设计与制作
  • 最早做淘宝返利的网站专业的集团网站设计网络
  • 东莞网站建设 包装材料学习网站建设优化
  • 网站创建多少钱长沙seo就选智优营家
  • 合肥网站建设服务平台杭州哪家公司做网站比较好
  • 网站建设网站系统选择网站建设素材图片
  • title:网站建设公司实力河南海华工程建设监理公司网站
  • 网站里做任务现在做网站建设的公司多么
  • 一般课程网站要怎么做宁波建网站推荐
  • 建设外贸商城网站制作自适应网站模板企业
  • wordpress建的网站打开太慢游戏公司做网站
  • 企业网站建设专业公司淘宝关键词排名查询
  • 通信工程网站建设wordpress 加载慢
  • 南京电商网站设计公司网店的运营模式有哪些
  • 搜索网站有哪几个线上职业技能培训平台
  • 织梦做的网站老是被黑怎么把百度放到网站上
  • wordpress 输出文章标签厦门网站流量优化价格
  • 网站建立定位企划wordpress微信qq登陆
  • 企业网站如何进行定位在线生成网页工具
  • 郴州住房和城乡建设部网站如何查找网站死链
  • 做新闻h5网站企业网站用织梦好吗
  • php mysql 网站模板扬州招标工程建设信息网
  • 网站建设讠金手指科杰南昌专业做网站