当前位置:首页 > VUE

vue实现v-mode

2026-02-21 18:37:22VUE

Vue 实现 v-model

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

在表单元素上使用 v-model

v-model 可以直接用于原生表单元素(如 inputtextareaselect),它会根据元素类型自动绑定对应的属性和事件。

<input v-model="message" placeholder="请输入内容">
<p>输入的内容是:{{ message }}</p>
data() {
  return {
    message: ''
  }
}

在自定义组件上实现 v-model

在自定义组件中,v-model 默认会绑定 value 属性和 input 事件。可以通过 model 选项修改默认行为。

<custom-input v-model="message"></custom-input>
Vue.component('custom-input', {
  props: ['value'],
  template: `
    <input
      :value="value"
      @input="$emit('input', $event.target.value)"
    >
  `
})

使用 model 选项自定义属性和事件

如果需要绑定其他属性或事件,可以通过 model 选项指定。

Vue.component('custom-input', {
  model: {
    prop: 'text',
    event: 'change'
  },
  props: ['text'],
  template: `
    <input
      :value="text"
      @input="$emit('change', $event.target.value)"
    >
  `
})

使用 .sync 修饰符实现双向绑定

Vue 2.3.0+ 支持 .sync 修饰符,可以实现父子组件间的双向绑定。

<custom-input :text.sync="message"></custom-input>
Vue.component('custom-input', {
  props: ['text'],
  template: `
    <input
      :value="text"
      @input="$emit('update:text', $event.target.value)"
    >
  `
})

Vue 3 中的 v-model 变化

在 Vue 3 中,v-model 的默认行为改为绑定 modelValue 属性和 update:modelValue 事件。

<custom-input v-model="message"></custom-input>
app.component('custom-input', {
  props: ['modelValue'],
  template: `
    <input
      :value="modelValue"
      @input="$emit('update:modelValue', $event.target.value)"
    >
  `
})

多个 v-model 绑定

Vue 3 支持在单个组件上绑定多个 v-model

vue实现v-mode

<custom-input v-model:first="first" v-model:last="last"></custom-input>
app.component('custom-input', {
  props: ['first', 'last'],
  template: `
    <input
      :value="first"
      @input="$emit('update:first', $event.target.value)"
    >
    <input
      :value="last"
      @input="$emit('update:last', $event.target.value)"
    >
  `
})

标签: vuemode
分享给朋友:

相关文章

vue实现微博印象

vue实现微博印象

实现微博印象功能的核心思路 微博印象功能通常指用户发布微博后,系统自动分析文本内容并提取关键词或标签,以可视化形式展示。Vue实现该功能需要结合文本分析、关键词提取和前端渲染技术。 文本分析与关键词…

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <template&…

vue菜单实现

vue菜单实现

Vue 菜单实现方法 使用 Element UI 的菜单组件 Element UI 提供了现成的菜单组件,适合快速实现导航菜单。安装 Element UI 后,可以直接使用 el-menu 相关组件。…

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

computed vue 实现

computed vue 实现

computed 在 Vue 中的基本用法 Vue 的 computed 属性用于声明依赖于其他数据的计算属性。当依赖的数据变化时,计算属性会自动重新计算并缓存结果。 export defaul…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…