标题:高考后的抉择:专业优先还是学校优先?

阅读 6

2024-06-23


* 情况一

	let props = withDefaults(defineProps<{ list: Array<any> }>(), {
	  list: () => [],
	})
	
	const list = toRef(props.list)
	
	watch(list.value, (newVal, oldVal) =>{
	  console.log('newVal=', newVal)  
	})


---------------------------------------------------------------------------------------------


* 情况二

	let props = withDefaults(defineProps<{ list: Array<any> }>(), {
	  list: () => [],
	})
	
	watch(() => ({...props}), (newVal, oldVal) => {
	  console.log('newVal=', newVal)  
	},  { immediate: true, deep: true },)


情况一中的watch是无效的,
因为,
toRef创建了一个 ref,但是,它只会在首次渲染时获取 props.list 的值,之后不再追踪其变化,
所以,
为了在子组件中响应式地追踪 props.list 的变化,你应该直接在watch使用 props.list而不是 toRef
这样就能确保,子组件,能够正确地获取到父组件传递的更新后的值

精彩评论(0)

0 0 举报