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

Vue3中实现父组件内复用子输入组件的独立值绑定

解决Vue3复用输入组件值共用的问题

问题原因

你当前的代码里,两个<MyComponent>都绑定了同一个myText响应式变量,所以输入时所有实例都会同步这个变量的值,导致共用。要让它们独立,只需要给每个组件绑定独立的响应式变量即可。

方案1:使用独立的响应式变量

修改App.vue,创建两个不同的ref分别绑定到两个组件:

<script setup>
import { ref } from 'vue'
import MyComponent from './MyComponent.vue'
  
// 创建两个独立的响应式变量
const myText1 = ref('')
const myText2 = ref('')
</script>

<template>
  This input capitalizes everything you enter:<br />
  <MyComponent v-model.capitalize="myText1" /><br />
  <MyComponent v-model.capitalize="myText2" />
</template>

MyComponent.vue不需要修改,保持原代码即可。

方案2:用数组管理多个实例(适合大量复用场景)

如果需要复用多个组件,用数组来管理更方便:

<script setup>
import { ref } from 'vue'
import MyComponent from './MyComponent.vue'
  
// 用数组存储多个独立值,初始可以根据需要添加空字符串
const inputValues = ref(['', ''])
</script>

<template>
  This input capitalizes everything you enter:<br />
  <MyComponent 
    v-for="(value, index) in inputValues" 
    :key="index"
    v-model.capitalize="inputValues[index]" 
  /><br />
</template>

这样后续新增组件时,只需要给inputValues数组添加新元素即可,无需单独创建变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 04:21:05