In functional programming languages we often have a Nil / Empty object / array / list, as a singleton so that Nil === Nil
.
In Javascript immutability is not by default so [] !== []
and {} !== {}
The problem is that I'm getting payloads from a backend with sometimes empty arrays, or we sometime use empty arrays as default values too as it's convenient.
I'm using ReactJs in a pure way, with the equivalent of PureRenderMixin
but sometimes we have components that do something similar to <Comp myProp={[]}/>
(obviously simplified). And obviously that triggers unnecessary React renderings.
I guess I can do something like <Comp myProp={MyCustomEmptyArraySingleton}/>
to solve the problem, or rework PureRenderMixin
What is the best way? So that the developpers do not have to think too much about this?
I would suggest you take a look at Immutable.js, which is developed by Facebook and it is meant to play well with React.