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属性也会随之更新,实现了双向数据绑定。

相关推荐
腹黑天蝎座14 小时前
从零实现一个前端监控系统:性能、错误与用户行为全方位监控
前端·监控
Hello--_--World15 小时前
ES13:类私有属性和方法、顶层 await、at() 方法、Object.hasOwnProperty()、类静态块 相关知识点
开发语言·javascript·es13
comerzhang65515 小时前
Web 性能的架构边界:跨线程信令通道的确定性分析
javascript·webassembly
Hooray15 小时前
为了在 Vue 项目里用上想要的 React 组件,我写了这个 skill
前端·ai编程
咸鱼翻身了么15 小时前
模仿ai数据流 开箱即用
前端
风花雪月_15 小时前
🔥IntersectionObserver:前端性能优化的“隐形监工”
前端
Bigger15 小时前
告别 AI 塑料感:我是如何用 frontend-design skill 重塑项目官网的
前端·ai编程·trae
发际线向北15 小时前
0x02 Android DI 框架解析之Hilt
前端
Ruihong15 小时前
Vue v-bind 转 React:VuReact 怎么处理?
vue.js·react.js·面试
zhensherlock15 小时前
Protocol Launcher 系列:Overcast 一键订阅播客
前端·javascript·typescript·node.js·自动化·github·js