Reactjs 在React中使用MobX可以完全摆脱useCallback和useMemo吗?

Reactjs 在React中使用MobX可以完全摆脱useCallback和useMemo吗?,reactjs,mobx,mobx-react-lite,Reactjs,Mobx,Mobx React Lite,目前,我正在react项目中使用Redux和上面提到的钩子。然而,在我看来,usemo和useCallback很快就会导致bug(棘手的bug)。据我所知,这些钩子是为了避免不必要的组件重新呈现而必需的,因为react正在检查引用相等性 我想去掉上面提到的钩子,让MobX处理所有反应性的东西。我想知道我是否能完全摆脱它们(useCallback,usemome),因此一切都会自动更新 MobX是否具有较慢的性能 有没有可能用MobX完全摆脱它们 UI组件是否也只能在MobX上中继(例如,为切换模

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

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

  • MobX是否具有较慢的性能
  • 有没有可能用MobX完全摆脱它们
  • UI组件是否也只能在MobX上中继(例如,为切换模式可见性设置加载布尔值或布尔值)

  • 此外,我认为
    useContext
    不应用于频繁更新。然而,MobX实际上经常与hook一起使用(谈论
    MobX-react-lite
    )。因此,使用MobX进行UI更新是一个好主意吗?

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

    • useMemo-代表懒惰的价值,如果你决定抛弃它,仅仅获得你的价值,什么也不会发生

    • useCallback-与函数的useMemo类似,您也可以声明函数,而无需将其包装在useCallback函数中

    从反应和

    您可以将UseMoom用作性能优化,而不是语义保证。

    useCallback(fn,deps)等同于useMemo(()=>fn,deps)

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

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

    MobX采用另一种方法来管理应用程序的全局状态,这种方法一开始听起来也不错,但随后您深入研究,并通过调整useState来触发forceRender,并使用一些voodoo和observable wrapper函数组件来查看实现

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

    它被称为


    如果您有任何想法,我将不胜感激。我认为这种方法使全局状态管理变得非常简单。

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

    • useMemo-代表懒惰的价值,如果你决定抛弃它,仅仅获得你的价值,什么也不会发生

    • useCallback-与函数的useMemo类似,您也可以声明函数,而无需将其包装在useCallback函数中

    从反应和

    您可以将UseMoom用作性能优化,而不是语义保证。

    useCallback(fn,deps)等同于useMemo(()=>fn,deps)

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

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

    MobX采用另一种方法来管理应用程序的全局状态,这种方法一开始听起来也不错,但随后您深入研究,并通过调整useState来触发forceRender,并使用一些voodoo和observable wrapper函数组件来查看实现

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

    它被称为


    如果你有任何想法,我将不胜感激,我认为这种方法使全局状态管理变得非常简单。

    IMO我永远不会喜欢一个不知名的小型库,而不是一个供数千人使用的经过战斗测试的库。IMO我永远不会喜欢一个不知名的小型库,而不是一个供数千人使用的经过战斗测试的库。