vue 组件实现v-model

ChatgGPT4.0国内站点: 海鲸AI

在Vue中,可以通过使用v-model指令来实现双向数据绑定。如果你想在自定义组件中使用v-model,需要做一些额外的工作。

首先,在组件的props中定义一个名为value的属性,用于接收父组件传递的值。然后,在组件内部,通过$emit方法触发一个名为input的自定义事件,并将新的值作为参数传递给父组件。

以下是一个示例:

javascript 复制代码
<template>
  <input :value="value" @input="updateValue($event.target.value)">
</template>

<script>
export default {
  props: ['value'],
  methods: {
    updateValue(newValue) {
      this.$emit('input', newValue);
    }
  }
}
</script>

在父组件中,你可以像使用原生的v-model一样使用这个自定义组件:

javascript 复制代码
<template>
  <div>
    <custom-input v-model="message"></custom-input>
    <p>Message: {{ message }}</p>
  </div>
</template>

<script>
import CustomInput from './CustomInput.vue';

export default {
  components: {
    CustomInput
  },
  data() {
    return {
      message: ''
    }
  }
}
</script>

这样,当在custom-input组件中输入文本时,父组件中的message属性也会随之更新,实现了双向数据绑定。

相关推荐
deli0071 天前
手机夜景模式为什么要举 3 秒?8 帧 RAW 堆栈 SNR 实测
前端
松仔log1 天前
Kotlin中级——callbackFlow
java·前端·kotlin
三小河1 天前
SWC 凭什么比 Babel 快 ?项目优化迁移踩坑记录
前端·后端
再吃一根胡萝卜1 天前
不改一行官方源码:用一个插件把 DeepSeek Harness 换成「平安one」
前端
西安小哥1 天前
做 Agent 写到第三个小时,我开始给它算账
javascript
西安小哥1 天前
让大模型操作浏览器跑了两周,我发现瓶颈根本不在模型
javascript
涛涛ing1 天前
2026年,你选的不再是框架,是渲染模型
前端
AiMan1 天前
Perplexity还是不可导出左侧所有对话,只能单条内容,方法不对吗
前端
FungLeo1 天前
成为全栈·Vue 管理后台篇·Vue Query:服务端数据缓存、query key与变更失效
vue.js·数据获取·前端缓存·前端状态管理·tanstack query·vue query
用户298698530141 天前
用 Python 自动化把 JavaScript 代码转换为 Word 文档
javascript·python·api