When will the react Component remount?
I hear React itself use Object.is to decide whether to reRender a component or not
How about remounted?
What does React check?
I give Object.is a try in the link, but it ends up "not this"
https://stackblitz.com/edit/react-ts-tuqhjk?file=App.tsx,index.html
understand unmounted - StackBlitz
React + TypeScript starter project
2 Replies
Interesting. I'm pretty sure there isn't a comparison check done, once the component unmounts basically being removed from VDOM and subsequently the DOM, likely the only thing it does on a "remount" is the same thing it does during a mounting phase
I think that a hidden , unique id is created and append on the component itself when calling createElement(MyComponent) , it will help the react to identify whether to mount it or just rerender it.
If a functional component is defined in another component, {the new id is created because the function is not the same} , so new vDom is created , during reconciliation, an unmount and a mount happen.
But, I find no doc to prove 
Below is not for sure.
Another situation related is render props, it seems like a line function definition(!! I try this, it will not remount)
We do not use it like this : <RenderProps someValue>
We use it like this: RendrProps(someValue)
In this case, because the RendrProps(someValue) return something , and this something will be put inside createElement. Not the RenderProps it self.
so no id related problem no remount.

Below is not for sure.
Another situation related is render props, it seems like a line function definition(!! I try this, it will not remount)
We do not use it like this : <RenderProps someValue>
We use it like this: RendrProps(someValue)
In this case, because the RendrProps(someValue) return something , and this something will be put inside createElement. Not the RenderProps it self.
so no id related problem no remount.