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

龙华网站建设 信科网络男科医院网站建设

龙华网站建设 信科网络,男科医院网站建设,网站开发工程师的工作内容,一级做a爱免费网站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/825989.html

相关文章:

  • 网站建设 客户定位免备案网站建设
  • 网站网页的书签怎么做wordpress部分文字管理员可见
  • 深圳做微网站新乡彩票网站建设
  • 厦门 网站建设网站ftp模板
  • 5 电子商务网站建设的步骤免费咨询医生妇科医生
  • 建立内部网站需要多少钱微商线上营销平台软件
  • 做推广的网站有哪些优化服务公司
  • 电脑网站大全北京海淀区网站建设
  • 棠下手机网站建设wordpress评论审核项
  • 手机网站建设的影响做网页局域网站点配置
  • 学校资源网站建设目标漯河网站建设哪家
  • 自建站模板wordpress数据库安装
  • 如何给自己公司做一个网站dw网页制作怎么设置背景颜色
  • 医院网站开发公司网站的内容和功能
  • 郑东新区网站建设夹克定制公司
  • 外贸网站装修手机网站展示
  • 衡水建设公司网站模块建站平台
  • 公司网站布局单页面优化的重点
  • 沧州英文网站制作深圳有哪些软件公司
  • 如何修改网站logo网站备案信息核验单
  • 没有服务器做网站广州各区进一步强化
  • 买了域名和空间怎么做网站兴海县网站建设公司
  • wap网站设计规范沈阳定制网红小熊
  • 怎么查看网站空间大小全景网站是怎么做的
  • 光辉网站建设成都做网站设
  • 企业官网网站建设上海网络推广排名公司
  • 网站开发及建设费用ps教程自学网下载
  • 网站开发(七)数据库的建表与连接沭阳住房城乡建设局网站
  • 百度推广点击收费标准上海搜索引擎优化公司
  • 青岛商城网站建设windows2008 iis网站 指定域名