|
|
|
|
|
by meiraleal
610 days ago
|
|
> While he addresses some really interesting issues with implementing web components, he just keeps bashing react every chance he gets, and considering how much of this post is spent on that in particular makes me really feel like this post is a (not so thin) veneer on top of what was originally meant to be a rant against react Right but what's the problem of someone writing an article to make a critic against React? > The author is a perfect example of an enlightened centrist. The post starts out with a (way too long) self-righteous lecture about the tone of the internet, and then quickly devolves into just bashing react using some pretty dubious arguments. Hypocrisy at its finest. Honestly, your (way too long) self-righteous lecture/reply attacking someone that say bad things about React gives the same vibe. |
|
That's not the problem. I like React. I welcome criticism. The issue is that the author's criticism is shaky at best. Here are some snippets:
> The DOM and CSSOM as a rendering surface is just one big fucking yarn ball of interconnected side effects that have side effects of their own. This means the components themselves are largely meaningless when removed from their rendering context.
This is a weird statement to make. I'm not even sure what point he's trying to make. It's also wrong. Components can often be designed to be reusable and meaningful in various contexts. While some components may depend heavily on their rendering environment, others can be quite modular and independent.
> But React components are also intentionally abstracted away from their rendering contexts. Between the many different rendering engines, hooks, contexts, synthetic event system, server actions, and more, there really is no such thing as a genuinely “functional” React component.
The statement "there really is no such thing as a genuinely 'functional' React component" misrepresents what it means for a component to be functional.
While it's true that many React components are not pure functions (since they can have side effects and state), this does not mean they cannot adhere to functional programming principles. Functional programming does not require that every function be pure; rather, it encourages a declarative approach to managing side effects.
React’s design encourages managing side effects in a way that maintains the declarative nature of your UI. By using hooks, you can encapsulate side effects and state management within functional components without compromising their readability or predictability.
> Even if it looks like a function that just takes props and returns markup, it isn’t really. It is effectively impossible to fully understand what’s going on in any given component that’s a part of a big app just from looking at the component itself.
This is an overgeneralization. While it may be challenging to understand a component in isolation if it relies heavily on external context, this is not a problem unique to React. As previously mentioned, any developer can write shitty, garbled code. The same could be said for a microservice, backend function, or component in any other UI framework / web app. This is the reality of any software development in a big organization.
This is where proper process, documentation, code review, and testing come into play.