vue3新特性 compositionAPi与React.js中Hooks的异同点

1. React.js中的Hooks基本使用

React Hooks允 许你"勾入"诸如组件状态 和副作用处理等React功能中。

Hooks只能用在函数组件中,并允许我们 在不需要创建类的情况下将状态、副作用处 理和更多东西带入组件中。React核心团队 奉.上的采纳策略是不反对类组件,所以你 可以升级React版本、在新组件中开始尝试 Hooks,并保持既有组件不做任何更改。 useState和useEffect是React Hooks 中的 一些例子,使得函数组件中也能增加状态和 运行副作用。我们也可以自定义一个 Hooks,它打开了代码复用性和扩展性的新 大门。

2.Vue Composition API基本使用

Vue Composition API围绕一个新的组件 选项setup而 创建。setup) 为Vue组件提 供了状态、计算值、watcher和生命周期钩子 ,并没有让原来的API (Options-based API) 消失。允许开发者结合使用新旧两种API (向下兼容)

3.原理

React hook底层是基于链表实现,调用 的条件是每次组件被render的时候都会顺 序执行所有的hookS。

Vue hook只会被注册调用一一次,Vue 能避开这些麻烦的问题,原因在于它对数据 的响

应是基于proxy的,对数据直接代理观 察。(这种场景下,只要任何一个更改data 的地方,相关的function或者template都会 被重新计算,因此避开了React可能遇到的 性能上的问题)。React中,数据更改的时 候,会导致重新render,重新render又会重 新把hooks重新注册一一次,所以React复杂 程度会高一些。

相关推荐
GISer_Jing3 小时前
Three.js着色器编译机制深度解析
javascript·webgl·着色器
丷丩3 小时前
MapLibre GL JS第22课:查看本地GeoJSON
前端·javascript·map·mapbox·maplibre gl js
油炸自行车3 小时前
Claude Code 错误:API Error: 400 Failed to deserialize the JSON body into the
开发语言·javascript·json·trae·claude code·api error 400
丷丩7 小时前
MapLibre GL JS第19课:实时更新要素
前端·javascript·gis·map·mapbox·maplibre gl js
xiaohua0708day8 小时前
Lodash库
前端·javascript·vue.js
万物皆对象6668 小时前
切换路由时页面空白问题(vue3)
前端·vue.js·typescript
突然好热8 小时前
TS 调试技巧
前端·javascript·typescript
h64648564h8 小时前
Flutter 国际化(i18n)全指南:一键切换中/英/日多语言
前端·javascript·flutter
丷丩10 小时前
MapLibre GL JS第8课:禁用滚动缩放
javascript·mapbox·maplibre gl js
李剑一10 小时前
小红书前端架构面试问的挺深入啊!面试官:Vue中组合式API与选项式API的设计权衡
vue.js·面试