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

做货源的网站天津企业seo

做货源的网站,天津企业seo,青海微网站建设,广告设计的发展前景Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称 Vue3中v-model默认使用modelValue作为prop,update:modelValue作为事件,而Vue2使用的是value和input。此外,Vue3允许通过参数的方式为组件添加多个v-model绑定&#xff0…

Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称

Vue3v-model默认使用modelValue作为propupdate:modelValue作为事件,而Vue2使用的是valueinput。此外,Vue3允许通过参数的方式为组件添加多个v-model绑定,例如v-model:titlev-model:description,每个都可以对应不同的prop和事件。

例一

一个简单的双绑定
多个v-model绑定,比如用户信息和权限设置。子组件接收两个v-model,如userNameisAdmin,然后在子组件内部使用modelValue和对应的update事件。不过这里可能需要使用不同的参数,比如v-model:userNamev-model:isAdmin,然后子组件的props应该是userNameisAdmin,事件则是update:userNameupdate:isAdmin

基础用法 - 用户信息组件

ChildComponent.vue

<template><div><input :value="userName" @input="$emit('update:userName', $event.target.value)"><inputtype="checkbox":checked="isAdmin"@change="$emit('update:isAdmin', $event.target.checked)"></div>
</template><script setup>
defineProps(['userName', 'isAdmin']);
defineEmits(['update:userName', 'update:isAdmin']);
</script><!-- 父组件使用 -->
<!-- <UserForm v-model:user-name="userData.name" v-model:is-admin="userData.adminStatus" 
/> -->

例二

一个自定义事件名称
例子可以涉及自定义prop和事件名称,但根据Vue3的文档,实际上通过v-model的参数就可以直接指定prop和事件,不需要额外配置。例如,v-model:title="pageTitle"会自动使用title作为propupdate:title作为事件

自定义参数 - 分页组件

Pagination.vue

<template><div><button @click="$emit('update:currentPage', currentPage - 1)">上一页</button><span>{{ currentPage }}/{{ totalPages }}</span><button @click="$emit('update:currentPage', currentPage + 1)">下一页</button></div>
</template><script setup>
defineProps(['currentPage', 'totalPages']);
defineEmits(['update:currentPage']);
</script><!-- 父组件使用 -->
<!-- <Pagination v-model:current-page="page" :total-pages="totalPages"
/> -->

注意:在Vue3中,每个v-model绑定默认对应一个propupdate事件,因此自定义名称实际上是通过v-model的参数来实现的。例如,v-model:userName对应prop userName和事件update:userName

例三

更复杂的对象传递,比如绑定整个对象,需要使用计算属性的gettersetter

对象参数 - 颜色选择器

ColorPicker.vue

<template><input type="color" :value="color" @input="$emit('update:color', $event.target.value)"><inputtype="range":value="opacity"@input="$emit('update:opacity', $event.target.value)"min="0"max="1"step="0.1">
</template><script setup>
defineProps({color: String,opacity: Number
});
defineEmits(['update:color', 'update:opacity']);
</script><!-- 父组件使用 -->
<!-- <ColorPicker v-model:color="style.color" v-model:opacity="style.opacity"
/> -->

关键点总结:

  1. 使用 v-model:参数名 语法实现多个绑定
  2. 子组件通过 defineProps 接收参数
  3. 通过 update:参数名 事件触发更新
  4. 参数名会自动转换为kebab-case(如userName → user-name
  5. 支持任意数量的v-model绑定
  6. 可以组合使用普通propsv-model参数
http://www.dtcms.com/wzjs/197907.html

相关文章:

  • 可以做兼职的网站有哪些工作微信公众号运营推广方案
  • jimdo做的网站广州企业网站seo
  • 奥林匹克做校服的网站产品推广文案范例
  • 企业网站建设新站深圳seo排名哪家好
  • 淘宝上做网站排名靠谱吗站长统计app进入网址新版小猪
  • 毕业设计做网站 如何做百度指数关键词搜索趋势
  • 舆情报告模板南安seo
  • 长沙网站制作刚刚突发1惊天大事
  • 深圳在建工程查询北京seo外包
  • 三 网站开发使用软件环境山东服务好的seo
  • 网站建设教程 mysql2000元代理微信朋友圈广告
  • 厚街网站建设价格网络营销策划案怎么写
  • 建站工具原理广告制作
  • 济宁做网站比较好的公司有哪些新产品推广方案范文
  • 网站推广效益怎么分析网站推广服务
  • 福建建设建设厅官方网站打开网址跳转到国外网站
  • 深圳营销型网站建设网络营销 长沙
  • 注册安全工程师官网seo快排技术教程
  • 南阳做那个网站好全国新增确诊病例
  • 百色市右江区了建设局网站百度关键词排名优化工具
  • 网站开发开源代码设计网站官网
  • 泊头市有做网站的吗中国新闻最新消息今天
  • 自己怎么做商城网站吗关键词排名的工具
  • 做今网站windows优化大师是病毒吗
  • 网站代备案网络营销顾问工作内容
  • 安徽餐饮网站建设谷歌官网下载app
  • 做网站百度上海网络推广团队
  • 个人网站建设心得体会网页模板网站
  • cc域名网站快速排名新
  • 搜索引擎提交网站网络营销的理解