vue 实现value赋值
Vue 实现 value 赋值的方法
在 Vue 中,可以通过多种方式实现 value 的赋值操作,具体取决于使用场景和需求。以下是几种常见的方法:
使用 v-model 实现双向绑定
v-model 是 Vue 提供的语法糖,用于在表单元素上实现双向数据绑定。它会根据输入元素的类型自动选择正确的方式更新数据。

<template>
<input v-model="inputValue" />
</template>
<script>
export default {
data() {
return {
inputValue: ''
}
}
}
</script>
通过 :value 和 @input 手动绑定
如果需要更精细的控制,可以拆分 v-model 为 :value 和 @input 手动实现绑定。
<template>
<input :value="inputValue" @input="handleInput" />
</template>
<script>
export default {
data() {
return {
inputValue: ''
}
},
methods: {
handleInput(event) {
this.inputValue = event.target.value
}
}
}
</script>
使用 ref 获取 DOM 并赋值
在需要直接操作 DOM 的场景下,可以通过 ref 获取元素并修改其 value。

<template>
<input ref="inputRef" />
<button @click="setValue">Set Value</button>
</template>
<script>
export default {
methods: {
setValue() {
this.$refs.inputRef.value = 'New Value'
}
}
}
</script>
在自定义组件中实现 v-model
自定义组件中可以通过 model 选项和 $emit 实现 v-model 功能。
<template>
<CustomInput v-model="customValue" />
</template>
<script>
export default {
data() {
return {
customValue: ''
}
}
}
</script>
<!-- CustomInput.vue -->
<template>
<input :value="value" @input="$emit('input', $event.target.value)" />
</template>
<script>
export default {
props: ['value']
}
</script>
使用 computed 属性实现计算赋值
通过计算属性可以基于其他数据动态计算并赋值。
<template>
<input v-model="computedValue" />
</template>
<script>
export default {
data() {
return {
firstName: '',
lastName: ''
}
},
computed: {
computedValue: {
get() {
return `${this.firstName} ${this.lastName}`
},
set(value) {
const [firstName, lastName] = value.split(' ')
this.firstName = firstName
this.lastName = lastName
}
}
}
}
</script>
注意事项
- 直接操作 DOM 的方式(如
ref)应谨慎使用,优先考虑数据驱动的 Vue 响应式方式。 - 在自定义组件中实现
v-model时,默认使用valueprop 和input事件,可以通过model选项修改。 - 计算属性的 setter 可以用于实现复杂的赋值逻辑。






