You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中如何在v-model或:value中使用变量动态绑定对象

解决方案:在Vue的v-model中使用动态对象属性

嘿,这个需求其实Vue原生就支持,核心就是用动态属性访问语法(方括号[])来替代点语法里的固定属性名。

具体怎么做

你已经有了childId变量(比如值是'child_1'或'child_2'),只需要把原来的固定属性名替换成方括号包裹的变量即可:

<input 
  type="text" 
  class="form-control" 
  id="child_name" 
  v-model="children[childId].name"
/>

当你通过点击事件更新childId的值时,v-model会自动切换绑定的数据源——输入框会自动显示对应孩子的名字,同时修改输入内容也会同步更新到children对象里对应的属性中。

完整示例代码

给你一个更完整的组件示例,包含切换孩子的逻辑:

<template>
  <div class="child-form">
    <!-- 切换按钮 -->
    <button 
      v-for="(child, id) in children" 
      :key="id"
      @click="childId = id"
      :class="{ active: childId === id }"
    >
      切换到 {{ child.name }}
    </button>

    <!-- 动态绑定的输入框 -->
    <div class="form-group">
      <label for="child_name">姓名</label>
      <input 
        type="text" 
        class="form-control" 
        id="child_name" 
        v-model="children[childId].name"
      />
    </div>
    <div class="form-group">
      <label for="child_gender">性别</label>
      <input 
        type="text" 
        class="form-control" 
        id="child_gender" 
        v-model="children[childId].gender"
      />
    </div>
    <!-- 其他属性同理 -->
  </div>
</template>

<script>
export default {
  props: {
    children: {
      type: Object,
      required: true
    }
  },
  data() {
    return {
      // 默认选中第一个孩子(这里取对象的第一个key)
      childId: Object.keys(this.children)[0]
    };
  }
};
</script>

<style scoped>
.active {
  background-color: #42b983;
  color: white;
}
</style>

为什么之前的写法失效?

之前你尝试用字符串变量直接替换child_1时,如果写成children.childId.name,Vue会把childId当成一个字面量属性名,而不是变量——它会去children对象里找名为childId的属性,而不是用childId变量的值作为属性名。方括号语法才会把里面的内容当作变量解析,这是JavaScript对象的基础语法哦。

补充:如果用:value的情况

如果你因为某些原因需要用:value而不是v-model,写法是一样的,然后需要手动处理input事件来更新数据:

<input 
  type="text" 
  class="form-control" 
  id="child_name" 
  :value="children[childId].name"
  @input="children[childId].name = $event.target.value"
/>

不过v-model已经帮你封装了双向绑定的逻辑,所以优先用v-model更省心。

内容的提问来源于stack exchange,提问作者UXCODA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:31:18