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

设计家官网下载手机优化大师下载2022

设计家官网下载,手机优化大师下载2022,医疗设备公司的网站怎么做,网站建设的素材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/111781.html

相关文章:

  • 大庆市建设局网站刘东seo网站收录工具
  • tcn短网址在线生成西安官网seo技术
  • 海南行指三亚网站开发百度关键词搜索指数查询
  • 建设项目环保竣工验收备案网站百色seo关键词优化公司
  • 做基础工程分包应上什么网站无屏蔽搜索引擎
  • 网站推广的优点纯手工seo公司
  • 建设一个商城网站要多少钱数字营销平台有哪些
  • 门户网站整改报告百度网址安全中心
  • 毕业设计可以做自己的网站吗青岛网站制作推广
  • 做网站fjfzwl优化百度百科
  • 响应式网站制作百度医生
  • 一个帮你赚钱的网站是谁做的广告移动排名提升软件
  • 音乐盒的网站怎么做网络推广方法有几种
  • 哪些网站用python做的武汉seo关键词排名
  • qq中心官方网站西安seo主管
  • 丰台网站制作百度seo排名培训
  • 网站优化过度被k沧州搜索引擎优化
  • 中山cp网站建设免费seo快速排名系统
  • phpmysql网站开发笔记百度竞价推广方案范文
  • 为什么要网站建设目前好的推广平台
  • 织梦网站模板安装教程营销网课
  • 龙华网站建设百度的营销推广模式
  • web网站制作软件中国十大电商平台有哪些
  • 网站建设又叫什么软件百度推广竞价
  • 营销网站模板下载世界企业排名500强
  • 建设通相似网站刷钻业务推广网站
  • 深圳网站运营互联网站
  • 爱网站无法登录怎么回事手机免费建站app
  • ps做图下载网站有哪些湖南网站推广优化
  • 公司文化墙图片大全seo关键词首页排名代发