我能在React中完全摆脱使用MobX的useCallback和useMemo吗



目前,我正在为react项目使用Redux和上面提到的钩子。然而,在我看来,useMemouseCallback可以很快导致错误(棘手的错误(。据我所知,这些钩子是为了避免不必要的组件重新呈现而必需的,因为react是检查引用相等性。

我想摆脱上面提到的钩子,让MobX处理所有的反应性东西。我想知道我是否可以完全摆脱它们(useCallbackuseMemo(,因此一切都会自动更新。

  1. MobX是否具有较慢的性能
  2. 有没有可能用MobX彻底摆脱它们
  3. UI组件是否也只能在MobX上中继(例如,设置加载布尔值或布尔值以切换模式可见性(

此外,我读到useContext不应用于高频率更新。然而,MobX确实经常与钩子一起使用(谈论mobx-react-lite(。那么,使用MobX进行UI更新是个好主意吗?

首先,您并不真正需要这些钩子。

  • useMemo-表示懒惰的价值,如果你决定放弃它,只获得你的价值,什么都不会发生。

  • useCallback-类似于函数的useMemo,您可以声明一个函数,而无需将其封装在useCallback函数中。

来自React useMemo和useCallback

您可能将useMemo作为性能优化,而不是语义保证

useCallback(fn,deps(等价于useMemo(((=>fn,deps(。

99%的情况下,这些挂钩用于优化,它们与MobX或Redux无关,您可以简单地不使用它们。除非您有一个非常具体的用例,StackOverflow中的其他问题建议您使用它们。

我个人讨厌redux,它一开始听起来不错,但比你意识到的要持续维护它是一个大怪物。

MobX采用了另一种方法来管理应用程序的全局状态,这在一开始听起来也很好,但后来你深入研究,通过调整useState来触发forceRender并使用一些带有可观察包装器功能组件的voodoo来查看实现。

这就是为什么我最近创建了一个简单的反应状态管理包,在我看来,它太简单了,无法理解维护和扩展(我在几个大型应用程序中使用了这种模式(

它被称为反应矛。

我真的很想听听你的想法,我认为这种方法让全球国家管理变得非常容易。

相关内容

  • 没有找到相关文章

最新更新