问题标签 [react-usememo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2544 浏览

reactjs - React 是否正在远离 React.memo 以支持 useMemo?

两者React.memouseMemo钩子都可以通过减少重新计算和重新渲染来优化性能。但是,它们确实有效,因为 React.memo 用于包装功能组件,并且useMemo钩子几乎可以用于任何功能,甚至是纯计算。更重要的useMemo是,通常从父组件调用到子组件,而React.memo通常在子组件本身的声明上调用。

虽然两者都有不同的优点,但一个优点React.memo是不必从每个父子关系中调用它。然而,随着 hooks 的发布,React 开发显然希望转向使用 hooks 来处理状态、副作用事件和其他效果的功能组件。虽然我认为 React 开发团队不会有勇气或无视他们的用户群React.memo在未来 2 年的任何时候删除,但我想知道他们是否希望最终用户出于文体原因停止使用 React.memo。就像他们被动地从类组件中移开,转而使用带有钩子的功能组件一样。

当使用带有钩子的功能组件时,反应框架是否正在远离React.memo?如果将来想跟上 React 的最佳实践,习惯使用 hook 版本会更好吗?

0 投票
1 回答
138 浏览

javascript - 什么时候不使用 useMemo?

我在我的应用程序中使用useMemo了很多,Functional Components我担心在我们的应用程序中使用它会是一种很好的体验吗?

为什么我经常使用它?

我有很多东西Components不需要重新渲染,除非在特殊情况下,这就是为什么我要避免他们重新渲染。

代码:

我可能有超过 20 个Functional Components,并且在所有这些中,我遇到的情况与我使用的很多useMemo钩子相同。

我的问题是这是bad experience影响坏performance而不是好的performance吗?或者不是根据我的条件没有问题。

0 投票
3 回答
31105 浏览

reactjs - 使用 React.useMemo 进行异步调用

场景相对简单:我们在远程服务器上进行了长时间运行的按需计算。我们想记住结果。即使我们从远程资源中异步获取,这也不是副作用,因为我们只想将此计算的结果显示给用户,并且我们绝对不希望在每次渲染时都这样做。

问题:似乎 React.useMemo 不直接支持 Typescript 的 async/await 并且会返回一个 promise:

等待异步函数的结果并使用 React.useMemo 记忆结果的正确方法是什么?我在普通的 JS 中使用了常规的 Promise,但在这些类型的情况下仍然难以解决。

我尝试过其他方法,例如 memoize-one,但问题似乎是this由于 React 函数组件的工作方式破坏了 memoization,这就是我尝试使用 React.useMemo 的原因。

也许我正试图在此处的圆孔中安装一个方形钉 - 如果是这种情况,也很高兴知道这一点。现在我可能只是要推出我自己的记忆功能。

编辑:我认为部分原因是我在使用 memoize-one 时犯了一个不同的愚蠢错误,但我仍然很想知道这里的答案 wrt.memo。

这是一个片段 - 这个想法不是直接在渲染方法中使用记忆结果,而是作为以事件驱动的方式引用的东西,即在计算按钮单击时。

0 投票
2 回答
19863 浏览

reactjs - 类组件中的 React.useMemo

在类组件的情况下,有没有办法使用这个钩子或 React API 的一些类似物?

我想知道,对于类组件(例如lodash memomemoizeOne等) ,我应该使用一些第三方备忘录助手,还是存在一些用于类组件的官方反应 API 方式。

谢谢你的帮助。

附言

我想在更改儿童的情况下生成 uuid。

使用 SFC 组件,我可以像这样使用 useMemo

但是如何在没有任何第三方等的情况下为基于类的组件实现相同的
PPS 我没有使用 Redux 等。只有纯 React.js

0 投票
1 回答
203 浏览

reactjs - 设置状态原因使用备忘录重新渲染

这是代码,不知道为什么 Mem 在设置状态后重新渲染,因为它是一个记忆组件,或者如果我想记住具有设置状态的组件,我应该使用 useRef?这么傻??

0 投票
1 回答
551 浏览

reactjs - 希望在第一次渲染时设置一次状态,而不会在进一步更新时导致不必要的重新渲染

我有一个MarketOverview组件可以呈现一堆加密货币交易对市场。在初始化时,我希望它默认呈现BTC/USD市场,我正在通过useEffect(). 问题是defaultMarket每次渲染都会调用。此外,defaultMarket取决于tickers道具,所以如果我将它包装在 中useMemo(),那么 eslint react-hooks 插件会自动填充tickers为依赖项。

没有useMemo()

useMemo()

整个组件:

0 投票
1 回答
536 浏览

react-native - React Navigation v5 身份验证流程(屏幕显示为不同的文件)

如果我们在文档示例中看到:https://reactnavigation.org/docs/auth-flow/

SignInScreen位于同一个App.js中。如果我们将SignInScreen.jsSignInScreen作为一个新文件发布,如何从SignInScreen.js调度?signIn

0 投票
3 回答
4367 浏览

reactjs - 为什么 React.useMemo(...) 在我的 React 函数中不起作用?

我正在尝试使用本指南实现一个反应表:

https://github.com/tannerlinsley/react-table/blob/master/docs/quickstart.md

在指南中的某一点,它说使用 React.useMemo 创建数据:

当我这样做时,我将这一行复制并粘贴到我的代码中(用我自己的数据替换数据):

但是当我运行它时,它告诉我:

所以在谷歌搜索这个问题之后,我收集到我需要在 React 函数中调用 useMemo 。所以我创建了这个:

在我的博客课上:

但现在它告诉我:

为什么它不是 React 函数?

更重要的是,调用 useMemo(...) 的正确方法是什么?

谢谢。

0 投票
1 回答
64 浏览

reactjs - React Native 上下文内容不断回来

我想使用useContextuseReducer和清除用户并在 React Native 中注销useMemo

我的应用程序(AuthContext)中有用户屏幕(UserContext)。

UserContextclearUsers()useMemo

AuthContextlogout()内有useMemo

如果我这样做,UserContext 的内容将被清除:

但是当我在 clearUsers 之后或之前添加注销时,userContext 内容在重新登录后不断返回。

有人经历过吗?请指教。

0 投票
0 回答
68 浏览

reactjs - 在 React 功能组件中重新渲染 Google Maps Elevations API 响应

我正在编写一个用于车辆跟踪的应用程序。在 Google Maps API 的帮助下,我可以获取路线并提取所有需要的信息。Elevations API 响应出现了问题。从 DirectionRender 类中,我将路径和距离作为道具发送。GM Elevations 请求是通过 lift.getElevationAlongPath(option,PlotElevation) 完成的。PlotElevation (elevations,status) 是一个回调函数。但是,无论我如何尝试仅从它那里接收一个响应(使用 useMemo、useEffect,我想我都尝试了所有方法),仍然存在重新呈现响应的问题。OVER_QUERY_LIMIT 或无休止的重新渲染。有人可以帮忙吗?谢谢

})

导出默认高程