Immutable data
"Mike, I have a question though. All said and done, why does PureRenderMixin
perform shallow comparison in the first place? Should it not perform a deep comparison so that we will always have better performance?" Shawn was not very happy with PureRenderMixin
.
"Well, there is a reason for this. Shallow comparison is very cheap. It does not take much time. Deep comparison is always expensive. Therefore, PureRenderMixin
does shallow comparison, which is good enough for most of the simple use cases," said Mike.
"However, React does provide us an option of defining our own version of shouldComponentUpdate
as we saw earlier. We can completely short-circuit the re-rendering process by just returning false
from shouldComponentUpdate
or we can compare only those props that are required by our component."
"True, just like we had written shouldComponentUpdate
for the BookRow
component right?" asked Shawn.
// src/BookRow.js export default React.createClass...