4 ms·
I agree. Optimizing a developer library for developers who struggle to understand what a class is seems like a good way to build something very convoluted.
by bendavis381 8y ago
I agree. Optimizing a developer library for developers who struggle to understand what a class is seems like a good way to build something very convoluted.
- ergothus 8y agoI don't think the issue is "what is a class". It's more that the lifecycle functions get tied into the class, and you end up with a ball of highly conditional logic. It's easy for newbies to just add stuff to make it work, but end up with a mess. React is the view layer, so the class concept of "here's some data and methods to alter it" doesn't really match with what happens - I don't know that components every should have been classes in the first place.
- xab9 8y agoAccording to the article yes, the issue is "what is a class": "You have to understand how this works in JavaScript, which is very different from how it works in most languages. You have to remember to bind the event handlers." etc.
- ergothus 8y agoCan't argue with the text of the article. I do, however, stand by why _I_ have found that classes are a bad match for this need, and watching the video of the demo did a much better job of suggesting the benefits and reasoning...reasons that don't really match the parts of the article you've quoted. https://www.youtube.com/watch?v=kz3nVya45uQ&t=39m https://www.youtube.com/watch?v=kz3nVya45uQ&t=39m (from elsewhere in the comments here)
- visarga 8y ago>Video unavailable. This video contains content from WebTVAsia (Music), who has blocked it on copyright grounds. LOL, did they just block a video presentation for some incidental random music in the background?
- wild_preference 8y agoEh, even in the same paragraph it says "The distinction between function and class components in React and when to use each one leads to disagreements even between experienced React developers." Also, bits of class issues show up in the other complaints. So, no, it's not just "what is a class" and it's a weird hill to die on. I feel like most of these responses to hooks in general just focus on the most trivial detail aka bikeshedding.
- xab9 8y agoI'm focusing on classes, because it seems to me that to "React" classes are a necessary evil (or they are treating them like they were). Hooks, suspense, context wormholes - I'm not sure if these features should be part of a view engine. React, to me, did one thing and did it well, but now... I don't know.
- tracker1 8y agoThere are other ways to approach an issue beyond shoving everything into a class. I'm not sure I really like the new hooks over the state methods at that level since I tend to separate global state (redux) vs component state (class) vs component state rendering (functional component). In the end it depends on your style. I think this might be useful in a way that can be more pure than some other methods might be.
- AlexCoventry 8y agoI don't know what you mean by pure. There is nothing reverentially transparent about the new API. (Nor can there be, really.)
- tracker1 8y agoAnd nothing that requires you to use the new API.
- Vinnl 8y agoIt's not just having to understand what a class is, it's also having to know and remember to add a constructor to your class just to call `this.handleSomeEvent = this.handleSomeEvent.bind(this)`. Sure, I know what it does and why it is needed, but it is ugly, cumbersome, and I keep forgetting it nonetheless.
- beaconstudios 8y agothere are babel solutions to this pain: - https://www.npmjs.com/package/babel-plugin-autobind-class-methods https://www.npmjs.com/package/babel-plugin-autobind-class-me... - https://www.npmjs.com/package/babel-plugin-transform-class-properties https://www.npmjs.com/package/babel-plugin-transform-class-p...