Comments (6)
Yes absolutely, I will fix it soon
from react-hooks.
I have further looked into this issue, useDocumentEvent
does not require listener
function to be reference equal, and it should never requires that since document is not a react controlled element, events on document can be stored inside a ref
, so current implement is safe.
from react-hooks.
I will close this issue since there is no side effect in current implement, discussion can continue here
from react-hooks.
I have further looked into this issue,
useDocumentEvent
does not requirelistener
function to be reference equal, and it should never requires that since document is not a react controlled element, events on document can be stored inside aref
, so current implement is safe.
What do you mean by safe?
The reason I am suggesting useCallback is so that this function won't be recreated on each render...
from react-hooks.
Yes, this function is recreated on each render, but since its underlying useDocumentEvent
does not pass the function any react controlled element like <div onClick={testAndTrigger} />
, a recreation of function will not trigger more render (or update) in react.
On the other side, we don't have performance benefit from useCallback
, for the code like:
useCallback(
function testAndTrigger() {
},
[]
);
testAndTrigger
is also recreated on each render, useCallback
from the second render discards the newly created function and returns a previously cached one. In this case we don't get performance boost to have an extra lookup in a cache.
So my conclusion is that a recreation of function will not make react render or update more times and it will not effect any performance, it is safe to just leave it recreated.
from react-hooks.
Indeed, you are much right.
In React we may consider potential performance problem in case of callback passing in props and child rerender and then Dom diff, in this case useCallback will help, which is not the case here.
About the second part, interesting point, useCallback actually creates this function anyway every time. BTW useMemo will not autocreate the function :) ()=>()=>{}
from react-hooks.
Related Issues (20)
- 为什么没有生命周期类的hook呢? HOT 9
- Need promise associated with `request` of `useRequestCall` to track task status outside HOT 4
- 可以补充一下每个hook 使用示例的文档吗? HOT 2
- support es5 for hooks using immer js, such as useMethod
- 请问 huse 的 .prettierrc 有么? HOT 2
- useRequest 和 useRequestCallback 不支持请求的时候,传递一些axios的配置项吗 HOT 2
- 部分hook babel 处理不完全, 低版本浏览器不兼容 for (const xxx) HOT 1
- 请问有没有计划做umi相关优化 HOT 3
- 文档体验问题,这些超链接点击无效,需要点击右上角的hooks才能进入hooks列表,不知道怎么取舍 HOT 1
- index document spell intersect incorrectly
- feat: supporting useMount: If the useEffect dependency is empty, it will only be executed during component initialization.
- allow useDebouncedCallback option `leading` or `immediate` HOT 1
- Add a computed array hook
- Can't find @huse/router HOT 2
- request in Suspense HOT 1
- Add document website to repo about pane.
- Adopt variant underlying state management
- Expose `request` in result of `useRequest` as well HOT 2
- Separate `useAttention` from `usePoll` for more combinations HOT 5
- Add a useToggleOrSet for convenience? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-hooks.