Fork me on GitHub

React组件逻辑复用分别在class和function中的比较

class组件逻辑复用

  • Mixins早已废弃
    • 变量作用域来源不清
    • 属性重名
    • Mixins引入过多会导致顺序冲突
  • 高阶组件HOC
    • 组件层级嵌套过多,不宜渲染,不宜调试,维护困难
    • HOC会劫持props,必须严格规范,容易出现疏漏
  • Render Prop
    • 学习成本高不易理解
    • 只能传递纯函数,而且默认情况下纯函数功能有限

Hooks组件逻辑复用

  • 完全符合Hooks原有规则,没有其他要求,易理解记忆
  • 变量作用域明确
  • 不会产生组件嵌套

React Hooks注意事项(keng)

  • useState初始化值,只有第一次有效
    • render:初始化state
    •  re-render:之回复初始化的state的值,不会再重新设置的值,只能用它set某来改变
  • useEffect内部不能修改state
    • useEffect(,[])第二个参数为空时触发,因为依赖为[]时re-render不会重新执行effect函数,没有依赖时re-render会重新执行effect函数
  • useEffect可能出现死循环
    • 第二个参数是通过Object.is()方法比较,第二个参数依赖最好不要出现数组和对象等引用类型,

posted on 2021-06-28 19:40  康心志  阅读(185)  评论(0编辑  收藏  举报

导航