问题标签 [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.
reactjs - React 是否正在远离 React.memo 以支持 useMemo?
两者React.memo
和useMemo
钩子都可以通过减少重新计算和重新渲染来优化性能。但是,它们确实有效,因为 React.memo 用于包装功能组件,并且useMemo
钩子几乎可以用于任何功能,甚至是纯计算。更重要的useMemo
是,通常从父组件调用到子组件,而React.memo
通常在子组件本身的声明上调用。
虽然两者都有不同的优点,但一个优点React.memo
是不必从每个父子关系中调用它。然而,随着 hooks 的发布,React 开发显然希望转向使用 hooks 来处理状态、副作用事件和其他效果的功能组件。虽然我认为 React 开发团队不会有勇气或无视他们的用户群React.memo
在未来 2 年的任何时候删除,但我想知道他们是否希望最终用户出于文体原因停止使用 React.memo。就像他们被动地从类组件中移开,转而使用带有钩子的功能组件一样。
当使用带有钩子的功能组件时,反应框架是否正在远离React.memo
?如果将来想跟上 React 的最佳实践,习惯使用 hook 版本会更好吗?
javascript - 什么时候不使用 useMemo?
我在我的应用程序中使用useMemo
了很多,Functional Components
我担心在我们的应用程序中使用它会是一种很好的体验吗?
为什么我经常使用它?
我有很多东西Components
不需要重新渲染,除非在特殊情况下,这就是为什么我要避免他们重新渲染。
代码:
我可能有超过 20 个Functional Components
,并且在所有这些中,我遇到的情况与我使用的很多useMemo
钩子相同。
我的问题是这是bad experience
影响坏performance
而不是好的performance
吗?或者不是根据我的条件没有问题。
reactjs - 使用 React.useMemo 进行异步调用
场景相对简单:我们在远程服务器上进行了长时间运行的按需计算。我们想记住结果。即使我们从远程资源中异步获取,这也不是副作用,因为我们只想将此计算的结果显示给用户,并且我们绝对不希望在每次渲染时都这样做。
问题:似乎 React.useMemo 不直接支持 Typescript 的 async/await 并且会返回一个 promise:
等待异步函数的结果并使用 React.useMemo 记忆结果的正确方法是什么?我在普通的 JS 中使用了常规的 Promise,但在这些类型的情况下仍然难以解决。
我尝试过其他方法,例如 memoize-one,但问题似乎是this
由于 React 函数组件的工作方式破坏了 memoization,这就是我尝试使用 React.useMemo 的原因。
也许我正试图在此处的圆孔中安装一个方形钉 - 如果是这种情况,也很高兴知道这一点。现在我可能只是要推出我自己的记忆功能。
编辑:我认为部分原因是我在使用 memoize-one 时犯了一个不同的愚蠢错误,但我仍然很想知道这里的答案 wrt.memo。
这是一个片段 - 这个想法不是直接在渲染方法中使用记忆结果,而是作为以事件驱动的方式引用的东西,即在计算按钮单击时。
reactjs - 类组件中的 React.useMemo
在类组件的情况下,有没有办法使用这个钩子或 React API 的一些类似物?
我想知道,对于类组件(例如lodash memo、memoizeOne等) ,我应该使用一些第三方备忘录助手,还是存在一些用于类组件的官方反应 API 方式。
谢谢你的帮助。
附言
我想在更改儿童的情况下生成 uuid。
使用 SFC 组件,我可以像这样使用 useMemo
但是如何在没有任何第三方等的情况下为基于类的组件实现相同的
PPS 我没有使用 Redux 等。只有纯 React.js
reactjs - 设置状态原因使用备忘录重新渲染
这是代码,不知道为什么 Mem 在设置状态后重新渲染,因为它是一个记忆组件,或者如果我想记住具有设置状态的组件,我应该使用 useRef?这么傻??
reactjs - 希望在第一次渲染时设置一次状态,而不会在进一步更新时导致不必要的重新渲染
我有一个MarketOverview
组件可以呈现一堆加密货币交易对市场。在初始化时,我希望它默认呈现BTC/USD
市场,我正在通过useEffect()
. 问题是defaultMarket
每次渲染都会调用。此外,defaultMarket
取决于tickers
道具,所以如果我将它包装在 中useMemo()
,那么 eslint react-hooks 插件会自动填充tickers
为依赖项。
没有useMemo()
:
与useMemo()
:
整个组件:
react-native - React Navigation v5 身份验证流程(屏幕显示为不同的文件)
如果我们在文档示例中看到:https://reactnavigation.org/docs/auth-flow/:
SignInScreen
位于同一个App.js中。如果我们将SignInScreen.jsSignInScreen
作为一个新文件发布,如何从SignInScreen.js调度?signIn
reactjs - 为什么 React.useMemo(...) 在我的 React 函数中不起作用?
我正在尝试使用本指南实现一个反应表:
https://github.com/tannerlinsley/react-table/blob/master/docs/quickstart.md
在指南中的某一点,它说使用 React.useMemo 创建数据:
当我这样做时,我将这一行复制并粘贴到我的代码中(用我自己的数据替换数据):
但是当我运行它时,它告诉我:
所以在谷歌搜索这个问题之后,我收集到我需要在 React 函数中调用 useMemo 。所以我创建了这个:
在我的博客课上:
但现在它告诉我:
为什么它不是 React 函数?
更重要的是,调用 useMemo(...) 的正确方法是什么?
谢谢。
reactjs - React Native 上下文内容不断回来
我想使用useContext
、useReducer
和清除用户并在 React Native 中注销useMemo
。
我的应用程序(AuthContext)中有用户屏幕(UserContext)。
UserContextclearUsers()
有useMemo
AuthContextlogout()
内有useMemo
如果我这样做,UserContext 的内容将被清除:
但是当我在 clearUsers 之后或之前添加注销时,userContext 内容在重新登录后不断返回。
有人经历过吗?请指教。
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 或无休止的重新渲染。有人可以帮忙吗?谢谢
})
导出默认高程