Composition API 与 React Hook 很像,区别是什么?

从 React Hook 的实现角度看,React Hook 是根据 useState 调用的顺序来确定下一次重渲染时的 state 是来源于哪个 useState,所以出现了以下限制:

  • 不能在循环、条件、嵌套函数中调用 Hook;
  • 必须确保总是在你的 React 函数的顶层调用 Hook;
  • useEffect、useMemo 等函数必须手动确定依赖关系。

而 Composition API 是基于 Vue 的响应式系统实现的,与 React Hook 的相比:

  • 声明在 setup 函数内,一次组件实例化只调用一次 setup,而 React Hook 每次重渲染都需要调用 Hook,使得React 的 GC 比 Vue 更有压力,性能也相对于 Vue 来说也较慢;
  • Compositon API 的调用不需要顾虑调用顺序,也可以在循环、条件、嵌套函数中使用;
  • 响应式系统自动实现了依赖收集,进而组件的部分的性能优化由 Vue 内部自己完成,而 React Hook 需要手动传入依赖,而且必须保证依赖的顺序,让 useEffect、useMemo 等函数正确的捕获依赖变量,否则会由于依赖不正确使得组件性能下降。

虽然 Compositon API 看起来比 React Hook 好用,但是其设计思想也是借鉴 React Hook 的。

相关推荐
志尊宝1 天前
Vue3 零基础每日笔记(055):组件里正确使用 store——storeToRefs 解构与 $patch 批量修改
笔记·vue·html·前端开发·软件开发
yzy851 天前
Vue中下载或打开文件的JavaScript方法
前端·javascript·vue
徐子童1 天前
介绍MVCC机制
java·mysql·面试题·秋招·并发·mvcc
白猫不黑2 天前
网络安全面试题大全:22道高频题附解析与答案
web安全·计算机·网络安全·信息安全·渗透测试·编程·面试题
溪语流沙3 天前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
程序员阿黄3 天前
基于 Django 与 Vue 3 的智能实验室预约系统设计与实现
后端·python·mysql·django·vue·毕设
.Hypocritical.3 天前
Vue CLI(vue-cli)和 Vite 超详细对比
vue
蒸鱼Yuzheng4 天前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
志尊宝4 天前
Vue3 零基础每日笔记(040):Vite 创建 Vue3 + TS 项目——企业标配从这一篇开始
笔记·vue·html·前端开发·软件开发
凤城老人4 天前
从零手写开源私有云盘|Flask+Vue3+Electron全栈网盘,单容器一键部署
python·docker·electron·vue