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

广州建设网站专家平谷头条新闻

广州建设网站专家,平谷头条新闻,mage menu在WordPress,图书网站开发背景在 Vue 中,v-model 是一种语法糖,用于在表单元素或者组件上实现双向数据绑定。 下面分别介绍在 Vue 2 和 Vue 3 里子组件使用 v-model 实现数据双向绑定的具体方式。 Vue 2 中使用 v-model 实现双向绑定 在 Vue 2 里,v-model 本质上是 :va…

在 Vue 中,v-model 是一种语法糖,用于在表单元素或者组件上实现双向数据绑定。

下面分别介绍在 Vue 2 和 Vue 3 里子组件使用 v-model 实现数据双向绑定的具体方式。

Vue 2 中使用 v-model 实现双向绑定

在 Vue 2 里,v-model 本质上是 :value@input 的语法糖。子组件需要接收 value 属性,并在数据变化时触发 input 事件。

父组件示例
<template><div><!-- 父组件数据 --><p>父组件的值: {{ parentData }}</p><!-- 使用 v-model 绑定到子组件 --><ChildComponent v-model="parentData" /></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},data() {return {parentData: ''};}
};
</script>
子组件示例
<template><div><!-- 绑定输入框的值到 value 属性 --><input :value="value" @input="updateValue($event.target.value)" /></div>
</template><script>
export default {// 接收父组件传来的 value 属性props: ['value'],methods: {updateValue(newValue) {// 触发 input 事件,将新值传递给父组件this.$emit('input', newValue);}}
};
</script>

代码解释

  • 父组件:使用 v-modelparentData 绑定到 ChildComponent 上。
  • 子组件
    • 通过 props 接收 value 属性,用于显示输入框的值。
    • 当输入框的值发生变化时,调用 updateValue 方法,在该方法里使用 $emit('input', newValue) 触发 input 事件,将新值传递给父组件。

Vue 3 中使用 v-model 实现双向绑定

在 Vue 3 中,v-model 对应的 prop 默认是 modelValue,事件是 update:modelValue。同时,使用 <script setup> 语法糖可以让代码更简洁。

父组件示例
<template><div><!-- 父组件数据 --><p>父组件的值: {{ parentData }}</p><!-- 使用 v-model 绑定到子组件 --><ChildComponent v-model="parentData" /></div>
</template><script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';// 定义响应式数据
const parentData = ref('');
</script>
子组件示例(使用 <script setup>
<template><div><!-- 绑定输入框的值到 modelValue --><input :value="modelValue" @input="updateValue($event.target.value)" /></div>
</template><script setup>
import { defineProps, defineEmits } from 'vue';// 定义 props 接收 modelValue
const props = defineProps(['modelValue']);
// 定义可以触发的事件
const emits = defineEmits(['update:modelValue']);const updateValue = (newValue) => {// 触发 update:modelValue 事件,将新值传递给父组件emits('update:modelValue', newValue);
};
</script>

代码解释

  • 父组件:使用 v-modelparentData 绑定到 ChildComponent 上。
  • 子组件
    • 使用 defineProps 接收 modelValue 属性。
    • 使用 defineEmits 定义 update:modelValue 事件。
    • 当输入框的值发生变化时,调用 updateValue 方法,在该方法里使用 emits('update:modelValue', newValue) 触发事件,将新值传递给父组件。

v-model 绑定(Vue 3.4+)

Vue 3.4 及以上版本支持多个 v-model 绑定,允许子组件同时处理多个双向绑定的数据。

父组件示例
<template><div><p>父组件的标题: {{ title }}</p><p>父组件的内容: {{ content }}</p><!-- 使用多个 v-model 绑定到子组件 --><ChildComponent v-model:title="title" v-model:content="content" /></div>
</template><script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';const title = ref('');
const content = ref('');
</script>
子组件示例(使用 <script setup>
<template><div><input :value="title" @input="updateTitle($event.target.value)" /><textarea :value="content" @input="updateContent($event.target.value)" /></div>
</template><script setup>
import { defineProps, defineEmits } from 'vue';// 定义 props 接收多个 v-model 的值
const props = defineProps(['title', 'content']);
// 定义可以触发的事件
const emits = defineEmits(['update:title', 'update:content']);const updateTitle = (newTitle) => {emits('update:title', newTitle);
};const updateContent = (newContent) => {emits('update:content', newContent);
};
</script>

通过以上方式,就能在子组件中使用 v-model 实现数据的双向绑定,无论是 Vue 2 还是 Vue 3 都能根据具体需求灵活运用。

http://www.dtcms.com/wzjs/384859.html

相关文章:

  • 室内设计网站平台seo营销专员
  • 成都网站建设优点营销策划书案例
  • 学做网站需要多少钱长沙seo智优营家
  • 手机上如何做微电影网站网站优化建议怎么写
  • 二手网站建设论文答辩百度推广时间段在哪里设置
  • 做网站推广公司潍坊seo排名
  • 东莞网站建设是什么意思网站推广的优化
  • 网络优化网站建设长沙seo免费诊断
  • 中国建设银行网站股份结构变化常宁seo外包
  • 北京企业做网站费用seo交流网
  • 广告公司手机网站建设seo技术 快速网站排名
  • 营销型企业网站建设 广义的空间大数据网站
  • 微网站可以做商城吗企业网站建设需要多少钱
  • wordpress评论模板制作保定seo推广公司
  • 郑州手机网站建设公司360搜索推广
  • ps网站首页怎么设计seo实战优化
  • 自己做的砍价网站关键词优化需要从哪些方面开展?
  • 做网站前期了解客户什么需求江苏seo
  • 做网站用注册公司吗公众号推广合作平台
  • 怎么自己创造网站推广软文怎么写
  • 做网站用什么电脑配置陕西网站建设网络公司
  • 网站开发用什么语言好百度后台管理
  • 百度小程序可以根据网站的要求做app拉新平台
  • 中国广告网站亚马逊seo推广
  • 沈阳网页制作设计新站seo竞价
  • 网站营销 优势大数据精准营销
  • 江宁网站建设制作互联网营销师考试
  • 互联网网站建设制作百度广告费用
  • wordpress首页只显示摘要不要文章seo上首页排名
  • 做鼻翼整形整形的网站郑州seo网络推广