vue3中defineProps传值使用ref响应式失效详解
更新时间:2022年03月15日 11:10:33 作者:可乐姜汁
这篇文章主要给大家介绍了关于vue3中defineProps传值使用ref响应式失效的相关资料,文章通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
子组件接收父组件的传参。
父组件:
<template> <Son :data="data"/> </template> <script setup> import { ref } from "vue"; let data = ref('hello') setTimeout(() => { data.value = 'how are you doing' }, 2000) </script>
子组件:
<template> <div>{{ msg }}</div> </template> <script setup> import { ref } from "vue"; // 接受来自父组件的传参 const props = defineProps({ data: String, }); const msg = ref(props.data); </script>
此时父组件改变 data 的值,子组件 msg 无法响应 data 的变化。
因为 ref 是对传入数据的拷贝,原始值 data 的改变并不影响 msg
但 toRef 是对传入数据的引用,原始值 data 改变会影响 msg
正确做法:
<template> <div>{{ msg }}</div> <div>{{ data }}</div> </template> <script setup> import { ref, toRefs, toRef } from "vue"; // 接受来自父组件的传参 const props = defineProps({ data: String, }); // 方法1: const msg = toRef(props, 'data'); // 方法2: const { data } = toRefs(props); </script>
官网说明
总结
到此这篇关于vue3中defineProps传值使用ref响应式失效的文章就介绍到这了,更多相关vue3使用ref响应式失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
通过vue-cli来学习修改Webpack多环境配置和发布问题
这篇文章主要介绍了随着Vue-cli来'学'并'改'Webpack之多环境配置和发布的相关知识,本文将会根据一些实际的业务需求,先学习vue-cli生成的模版,然后在进行相关修改,感兴趣的朋友一起跟着小编学习吧2017-12-12解决vue net :ERR_CONNECTION_REFUSED报错问题
这篇文章主要介绍了解决vue net :ERR_CONNECTION_REFUSED报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08
最新评论