vue3父子组件数据更新不及时的问题

使用props向子组件传值时,使用如下方式会导致组件不更新数据:

javascript 复制代码
const props = defineProps({
	typeOne: {
		type: Number,
		default: 0
	},
	typeTwo: {
		type: Number,
		default: 0
	}
});
const searchParams = ref({
	typeOne: props.typeOne,
	typeTwo: props.typeTwo
});

父组件中的typeOne和typeTwo发生变化时,searchParams的数据不会发生变化,因为数据是单向数据流,这里的赋值只会赋值一次。

通过如下方式解决:

javascript 复制代码
const props = defineProps({
	typeOne: {
		type: Number,
		default: 0
	},
	typeTwo: {
		type: Number,
		default: 0
	}
});
const { typeOne, typeTwo } = toRefs(props);
const searchParams = ref({
	typeOne: computed(() => typeOne.value),
	typeTwo: computed(() => typeTwo.value)
});

这样写了之后,父组件数据发生变化时,子组件的searchParams中的数据就会跟着变化。

在父组件中要使用nextTick中调用子组件中获取数据的接口,保证数据变化完后调用接口:

javascript 复制代码
nextTick(() => {
	children.getData();
});
相关推荐
Remember_99318 小时前
【LeetCode精选算法】滑动窗口专题二
java·开发语言·数据结构·算法·leetcode
Filotimo_18 小时前
在java开发中,cron表达式概念
java·开发语言·数据库
码农水水18 小时前
京东Java面试被问:HTTP/2的多路复用和头部压缩实现
java·开发语言·分布式·http·面试·php·wpf
摘星编程18 小时前
React Native for OpenHarmony 实战:Picker 选择器组件详解
javascript·react native·react.js
你怎么知道我是队长19 小时前
C语言---未定义行为
java·c语言·开发语言
摘星编程19 小时前
React Native for OpenHarmony 实战:VirtualizedList 虚拟化列表
javascript·react native·react.js
没有bug.的程序员19 小时前
Java 序列化:Serializable vs. Protobuf 的性能与兼容性深度对比
java·开发语言·后端·反射·序列化·serializable·protobuf
谢尔登19 小时前
Vue3 响应式系统——computed 和 watch
前端·架构
愚公移码19 小时前
蓝凌EKP产品:主文档权限机制浅析
java·前端·数据库·蓝凌