相关疑难解决方法(0)

与Redux反应?"背景"问题怎么样?

我通常在Stack上发布代码相关的东西,但这更多的是关于社区的一般想法是什么的问题.

似乎有很多人主张使用Redux和React来管理数据/状态,但是在阅读和学习两者时,我遇到了一些看起来不太合适的东西.

终极版

在本页的底部:http://redux.js.org/docs/basics/UsageWithReact.html(传递商店)它建议使用React'Context'的"Magic".

一种选择是将其作为道具传递给每个容器组件.然而,它变得乏味,因为你必须通过表示组件连线存储,因为它们碰巧在组件树中深层渲染容器.

我们建议的选项是使用一个特殊的React Redux组件,该组件可以神奇地使商店可用于所有容器组件......

应对

在React Context页面(https://facebook.github.io/react/docs/context.html)上面有一个警告:

上下文是一种先进的实验性功能.API可能会在将来的版本中发生变化.

然后在底部:

正如在编写清晰代码时最好避免使用全局变量一样,在大多数情况下应避免使用上下文...

不要使用上下文通过组件传递模型数据.明确地通过树线处理数据更容易理解......

所以...

Redux建议使用React'Context'功能,而不是store通过'props' 将其传递给每个组件.虽然React建议相反.

此外,似乎Dan Abramov(Redux的创建者)现在为Facebook(React的创建者)工作,只是为了让我更加困惑.

  • 我正在读这一切吗?
  • 目前关于这个问题的一般共识是什么?

javascript reactjs redux

87
推荐指数
2
解决办法
1万
查看次数

React 16的Portal API是否打算取代Context API?

我注意到新功能portals做同样的事情,但是更好吗?我对门户网站了解不多,但这似乎是管理嵌套组件更新的新方法?我知道Reacts Context API是实验性的,注意到componentDidUpdate不再接收prevContext并且它们被丢弃了contextTypes

我还注意到他们正在引入React 16的Portal API,并且不确定是否打算取代Context API。

因此,如上所述,React 16的Portal API是否打算取代Context API?

编辑:piggy带上这个主题,是在反应中管理i18n本地化的最佳方法吗?

javascript portal reactjs react-fiber

6
推荐指数
1
解决办法
574
查看次数

使用Context API和Redux是否有性能优势?

我已经阅读了上下文API,它看起来像是一种解决React的单向数据通信问题的优雅方法。

但是,还有Redux可以很好地共享全球状态。

如果我使用上下文API和钩子,将会获得任何性能优势吗?

PS:我读到上下文API,我们将不得不检查渲染,因为它甚至会使整个应用有时重新渲染。

javascript reactjs

6
推荐指数
3
解决办法
174
查看次数

Redux vs自定义钩子

我同时学习了React和Redux,并全力投入Redux。基本上所有状态都存储在Redux中。我跟着标准allIdsbyId状态形状图案为这里详述

我的应用程序非常以数据为中心,它与API通讯,并且执行许多CRUD类型的操作-fetchAll,fetchById,添加,更新,删除。

API通信被隔离到一个“服务层”模块中,该模块是其自己的npm软件包。对该服务层的所有调用都在redux操作中,使用redux-thunk

我已经意识到不需要将所有内容都放在Redux中,例如,确实需要在特定组件上使用数据。我想简化这种架构。

因此,我开始重构为自定义钩子。似乎因为我的状态形状更多是对象而不是标量,所以我应该使用useReducer而不是useState...

// reducer
// ------------------------- 
const initialState = {
  adding: false,
  updating: false,
  deleting: false,
  error: null,
  items: null
};
const reducer = (state, action) => {
// implementation omitted for brevity. . .
}
const useItemsApi = () => {
  const [state, dispatch] = useReducer(reducer, initialState);

  // wrapped in useCallback because called in component's useEffect
  const fetchItems = useCallback(async …
Run Code Online (Sandbox Code Playgroud)

javascript architecture reactjs redux react-redux

5
推荐指数
1
解决办法
171
查看次数

如果你正在使用 redux,为什么要使用react.useContext?技术上有何差异?

如果你已经在使用 redux,为什么还要使用react.useContext?我正在努力理解react.useContext相对于redux有什么好处。我有什么遗漏的吗?

我试图更深入地理解react.useContext和redux。因此,请解释为什么一种技术在技术上比另一种更适合某些情况。技术上有何差异?

reactjs redux react-context

5
推荐指数
1
解决办法
4457
查看次数