主要记录vue3使用过程的一些细节点
-
- [1.toRefs 响应式解构](#1.toRefs 响应式解构)
- [2.provide + inject异步传递爷孙组件数据](#2.provide + inject异步传递爷孙组件数据)
- 3.defineExpose暴露子组件方法
1.toRefs 响应式解构
当你在组件中接收 props 的时候,如果只是简单的解构的话,是没有响应式的
所以可以使用 toRefs
来进行解构,这样解构出来的每一个属性都是一个 Ref
clike
const {title, count} = toRefs(props)
2.provide + inject异步传递爷孙组件数据
当你在封装一些比较复杂的组件时,涉及到的组件层数会比较多 的时候,使用 props
进行数据传递会比较麻烦,所以可以使用 provide + inject
来进行数据传递共享
3.defineExpose暴露子组件方法
vue3父子组价里,父组件使用子组件的方法,需要子组件使用defineExpose将对应方法暴露出来
clike
// son.vue
<script>
defineExpose({
sonFun1,
sonFun2,
})
</script>
// far.vue
<script>
let sonRef = ref(null)
sonRef.value?.sonFun1()
</script>