Vue3 通過 props 傳值被消除響應性


Vue3 通過 props 傳值被消除響應性

1. 子組件中使用 props

<template>
<p>{{ resourceType }}</p>
</template>

<script>
props: {
    detail: {
      type: Object,
      required: true
    }
  },

setup(props){
	const detail = ref(props.detail)
	const resourceType = computed(() => detail.value.resourceData || '/')
	return { resourceType }
}
</script>

此時頁面上一直顯示 /, 即便父組件傳入的 detail 更新,resourceType 不會更新,說明它不是響應式的。

  1. 解決:使用 toRefs以及解構賦值語法。

setup(props){
	const { detail } = toRefs(props)
	const resourceType = computed(() => detail.value.resourceData || '/')
	return { resourceType }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM