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页面中如何更优雅地引入图片详解

    在Vue页面中如何更优雅地引入图片详解

    我们在Vue.js项目中经常需要引用图片,所以下面这篇文章主要介绍了关于在Vue页面中如何更优雅地引入图片的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • vue-awesome-swiper滑块插件使用方法详解

    vue-awesome-swiper滑块插件使用方法详解

    这篇文章主要为大家详细介绍了vue-awesome-swiper滑块插件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • elementUI中Table表格问题的解决方法

    elementUI中Table表格问题的解决方法

    这篇文章主要给大家介绍了关于elementUI中Table表格问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • vue.js中导出Excel表格的案例分析

    vue.js中导出Excel表格的案例分析

    这篇文章主要介绍了vue.js中如何导出Excel表格,在项目中经常会遇到这样的需求,今天小编分步骤通过实例代码给大家详细介绍,需要的朋友可以参考下
    2019-06-06
  • vue将秒数转成"时分秒"格式实例代码

    vue将秒数转成"时分秒"格式实例代码

    在项目中,请求后台接口返回的值是秒,这篇文章主要给大家介绍了关于vue将秒数转成"时分秒"格式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • vue任意关系组件通信与跨组件监听状态vue-communication

    vue任意关系组件通信与跨组件监听状态vue-communication

    这篇文章主要介绍了vue任意关系组件通信与跨组件监听状态vue-communication,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • vue完美实现el-table列宽自适应

    vue完美实现el-table列宽自适应

    这篇文章主要介绍了vue完美实现el-table列宽自适应,对vue感兴趣的同学,可以参考下
    2021-05-05
  • vite 项目中如何使用Sass

    vite 项目中如何使用Sass

    Vite默认集成了对Sass的支持,你只需要安装Sass本身即可,这篇文章主要介绍了vite 项目中如何使用Sass,需要的朋友可以参考下
    2024-04-04
  • 如何正确理解vue中的key详解

    如何正确理解vue中的key详解

    这篇文章主要给大家介绍了关于如何正确理解vue中key的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • vue从零实现一个消息通知组件的方法详解

    vue从零实现一个消息通知组件的方法详解

    这篇文章主要介绍了vue从零实现一个消息通知组件的方法,结合实例形式分析了vue实现消息通知组件的具体原理、实现步骤、与相关操作技巧,需要的朋友可以参考下
    2020-03-03

最新评论