4 ms·
#3 Write functional components I'd say "Write functional components where it makes sense". For simple components that is a reasonable advise, however in cases
by Ronsenshi 11y ago
#3 Write functional components
I'd say "Write functional components where it makes sense". For simple components that is a reasonable advise, however in cases when you need such methods as `componentDidUpdate` or generally any lifecycle methods - that won't do and you have to use classes.
- _asummers 11y agoNot a React guy, but why couldn't the component that updated broadcast that it did so? Or is that componentDidUpdate method a callback to the message I'm describing?
- lopatin 11y agoDepends on what kind of component just updated. If it's a low level text field, it probably shouldn't broadcast the change to anywhere else in the program. Instead it would invoke it's 'onChange' callback. This way, there are no extra dependencies for making the text field component work. The parent component always provides the onChange callback and takes action accordingly. However, if the component that just updated is high level, like an entire page or something, then it's reasonable to assume it's a one-off controller component and you should feel free to broadcast messages and couple the component with other parts of the program. https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.1na8fj54h https://medium.com/@dan_abramov/smart-and-dumb-components-7c...
- Ronsenshi 11y agoIn addition to what lopatin replied to you - sometimes your component have to subscribe to some window event - for example 'resize'. I'd say it is way better to handle this event attachment/removal within the component instead of inventing some convoluted system of events in the root container which broadcast changes. There's a number of situations when functional component just not enough.