当前位置:首页 > 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.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue  select实现

vue select实现

Vue Select 实现方法 在 Vue 中实现下拉选择功能可以使用原生 <select> 标签或第三方库如 vue-select。以下是两种方法的详细说明: 原生 HTML Sele…

vue 实现关闭

vue 实现关闭

Vue 实现关闭功能的方法 在Vue中实现关闭功能通常涉及组件销毁、模态框隐藏或路由跳转等场景。以下是几种常见实现方式: 销毁当前组件 使用v-if或v-show控制组件显示/隐藏,适用于局部组件:…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <…

vue 实现流程

vue 实现流程

Vue 实现流程 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue 实现的基本流程: 安装 Vue.js 通过 CDN 引入或使用 npm/yarn 安装:…

vue实现浮标

vue实现浮标

Vue 实现浮动按钮(浮标) 使用 Vue 实现浮动按钮可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 定位和 Vue 组件 创建 Vue 组件并配合 CSS 固定定位实现浮动按钮:…