vue3中父组件给子组件传递一个object,子组件接收到这个object,直接用不就行了,为啥还有toRef()一下,这步有用吗?
在Vue 3中,父组件向子组件传递一个对象时,如果子组件直接使用这个对象,它将是一个响应式的对象。这意味着如果父组件修改了这个对象的属性,子组件也会立即更新相应的视图。
然而,有时子组件可能只需要依赖对象的某个属性,而不是整个对象。在这种情况下,使用toRef()可以将对象的属性转换为一个单独的响应式引用,以便在子组件中进行使用 。
好处:
1.提高性能:使用toRef()可以将属性转换为一个独立的引用,而不是整个对象。这样在子组件中只会监听这个属性的变化,减少了不必要的监听和更新操作,从而提高了性能。
2.避免不必要的更新:如果子组件依赖于整个对象,那么即使对象的其他属性发生变化,子组件也会重新渲染。而使用toRef()将属性转换为独立的引用后,只有当这个属性发生变化时,子组件才会重新渲染,避免了不必要的更新。
做动态响应渲染值用的,如果你不用toref(),那么你修改这个值界面不会重新渲染的