Vue 怎么向子组件传递 ref对象,而不是value

test    // 这样只是传 test.value
/>

const test = ref()

传ref对象的好处是 ,可以在子组件中直接修改 test.value

1.大家都知道,vue是具有单向数据流的传递特性。当你在子组件中修改父组件传递过来的数据的时候,控制台就会报出错误,说不让你对父组件传递的值进行修改。
2.那么,尤大大为了解决这个问题,在vue3的时候给我们提供了一个新的思路:v-model来实现父传子,并且子也可以修改父组件传递过来的数据。
3. 都读到这里了,我给大家提供两个修改父组件数据的思路(不仅限于vue3):
法一:使用v-model进行父传子,并且子组件修改父组件传递的值。
法二:使用Pinia或者vuex进行状态管理,然后进行数据的修改。
————————————————
版权声明:本文为CSDN博主「喝西瓜汁的兔叽Yan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:

望采纳

在 Vue 中,你可以使用 v-bind 指令来向子组件传递 ref 对象。

<template>
  <div>
    <Children v-bind:data="test" />
  </div>
</template>

<script>
import Children from './Children.vue'

export default {
  components: {
    Children
  },
  data() {
    return {
      test: this.$refs.test
    }
  },
  mounted() {
    console.log(this.$refs.test) // 输出 ref 对象
  }
}
</script>

上述代码我们使用 v-bind 指令来向子组件传递 ref 对象。在子组件中,可以直接使用 this.data 来访问传递过来的 ref 对象。

子组件访问 prop.data 用 nextTick 包裹一下。这个涉及到父子组件生命周期的问题。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632