useHooks 某种程度上可以由类组合生成代替,  高阶函数 有点像函数式的抽象类? 有大佬谈谈有啥优缺点吗,还是说本质上是前端领域一种函数式的对类概念的替换?
举报· 103 次点击
登录 注册 站外分享
6 条回复  
codehz 初学 2024-7-9 10:50:13
就是 js 用不了代数效应,所作的一个拙劣模仿而已(
changwei 小成 2024-7-9 11:00:43
面向对象的写法问题主要在于会把同一个业务逻辑的代码分散到多个 lifecycle ,而 hook 刚好解决了这个问题
至于 useState 这种内置 hook 只是因为 function 的写法没办法调用 this.setState 而创立的
Java 这些传统面向对象编程语言其实有用 annotation+AOP 的方式来解决业务逻辑必须要分散到多个生命周期的问题,而 JavaScript 这边的 decorator 好像迟迟没有纳入 ECMAScript 标准,除了 nest.js 和 mobx 以外比较少有框架在用“非标准”的 decorator 特性
nulIptr 小成 2024-7-9 11:20:13
@changwei 虽然 hooks 已经写了好几年了,但还是理解不了为啥 [把同一个业务逻辑的代码分散到多个 lifecycle] 是一个问题,从 mfc 开始就这么写,各种插件化开发其实也就是暴露不同生命周期时点,甚至写业务代码中经常会写一个 init 方法和 distory 方法放到一个单独的 effect 里面,可能是我道行太浅。。。
chenliangngng 小成 2024-7-9 14:41:01
usehooks 就是函数式编程的组合,完全践行了组合大于继承,基本上你永远都无需使用继承

其实不论是组合 compose ,管道 pipe ,还是高阶函数,都是 fp 的基础知识,不要拿 oop 去套
lisongeee 小成 2024-7-9 15:12:03
@nulIptr #4

https://cn.vuejs.org/guide/extras/composition-api-faq.html#more-flexible-code-organization
ivslyyy 小成 2024-7-10 04:00:38
oo 和 hooks ,
---
组合优于继承
返回顶部