Redux 内部是否使用上下文 API?
Is Redux internally using context API?
我有一个面试,面试官问我redux内部是否使用上下文API。如果是,请提供详细说明。谢谢
Internally, React Redux uses React's "context" feature to make the
Redux store accessible to deeply nested connected components. As of
React Redux version 6, this is normally handled by a single default
context object instance generated by React.createContext(), called
ReactReduxContext.
Redux 不使用上下文 api,它是用于状态管理的 javascript 库。您可以将 Redux 用于任何应用程序,例如(react、angular、vue、svelte 等)。但是,要将 redux 与 React 应用程序一起使用,您需要 react-redux
这是 redux 的官方 React 绑定。
react-redux
使用 React 的上下文 api 使所有组件都可以访问 redux 存储。你需要 react-redux
的原因是,React 使用虚拟 dom - 这意味着你不能直接操作 DOM
。在 angular 等其他库中,我们使用 NgRx
库(对于 angular)。
是的,但与您自己完成不同。
如果您要手动使用上下文,通常会进行 值传播 - 将当前状态值向下传递到树中。这可能导致非常低效的重新渲染行为。有关更深入的解释,请参阅 this article。
另一方面,React-Redux 使用上下文进行 依赖注入 。 store 沿着树向下传递,永远不会改变,永远不会触发重新渲染。所有其余的都由 Redux 在内部使用手动订阅完成。这更高效。
我有一个面试,面试官问我redux内部是否使用上下文API。如果是,请提供详细说明。谢谢
Internally, React Redux uses React's "context" feature to make the Redux store accessible to deeply nested connected components. As of React Redux version 6, this is normally handled by a single default context object instance generated by React.createContext(), called ReactReduxContext.
Redux 不使用上下文 api,它是用于状态管理的 javascript 库。您可以将 Redux 用于任何应用程序,例如(react、angular、vue、svelte 等)。但是,要将 redux 与 React 应用程序一起使用,您需要 react-redux
这是 redux 的官方 React 绑定。
react-redux
使用 React 的上下文 api 使所有组件都可以访问 redux 存储。你需要 react-redux
的原因是,React 使用虚拟 dom - 这意味着你不能直接操作 DOM
。在 angular 等其他库中,我们使用 NgRx
库(对于 angular)。
是的,但与您自己完成不同。
如果您要手动使用上下文,通常会进行 值传播 - 将当前状态值向下传递到树中。这可能导致非常低效的重新渲染行为。有关更深入的解释,请参阅 this article。
另一方面,React-Redux 使用上下文进行 依赖注入 。 store 沿着树向下传递,永远不会改变,永远不会触发重新渲染。所有其余的都由 Redux 在内部使用手动订阅完成。这更高效。