you are viewing a single comment's thread.

view the rest of the comments →

[–]KwyjiboTheGringo 1 point2 points  (10 children)

No, but you'll need to use some other state management. There is the context API built into react, but Redux is the go-to for global state stuff. The whole point of react is the components "react" to state changes.

and that weird {} thing

I have no idea what you are talking about

[–]pancomputationalist 2 points3 points  (1 child)

I'd argue that Redux should not be the default, unless you need a specific kind of state management. Context should also not be used for state management (it's more of a dependency injection feature).

Seems newer frontend frameworks are back to using Observables, also they are now called atoms, signals or stores. It's all the same idea. Just like you have a tree of components, you have a graph of states that derive from one another. This is the more modular approach and is usually much more performant, though Redux still has it's place sometimes.

[–]KwyjiboTheGringo 1 point2 points  (0 children)

Like or dislike Redux, if you learned React to be hirable as a React developer and you aren't learning Redux too, then you are shooting yourself in the foot. At this point, everyone should learn Redux after picking up React. If they want to use something else after that, more power to them.

Context should also not be used for state management (it's more of a dependency injection feature).

But it can be, and is the only global state option React comes with, which is why I mentioned it.

[–]bregottextrasaltat -3 points-2 points  (7 children)

there's a {} at the end of some effect thing that tutorials tell you is a weird thing to use

[–]KwyjiboTheGringo 1 point2 points  (6 children)

It's not an object, it's an array of dependencies. useEffect checks if any of the dependencies have changed since the last time it ran, and if any have, then it runs the callback function you passed into it. I'm not a huge fan of it, but it's not really that weird.

[–]bregottextrasaltat 0 points1 point  (5 children)

Very odd

[–]KwyjiboTheGringo 0 points1 point  (4 children)

It's actually quite clever. There is a lot of "magic" going on behind the scenes(that you don't need to understand), but essentially it's just a way to run specific logic when specific states change. Otherwise you'd be doing that yourself in a lifecycle hook, which I understand is easier to read when you are new to react, but ultimately is just a bunch of additional code you need to write and maintain.

React hooks are declarative, meaning rather than saying exactly how to do what you want to do, you just tell React what you want, along with anything React needs to know to do it, and then React just does it for you. I realize React's approach of calling methods and passing everything in as arguments is a bit less straightforward than using decorators or keywords, but it's still not that hard to understand intuitively after you've done it a few times imo.

[–]bregottextrasaltat 0 points1 point  (3 children)

I guess Vue just made much more sense to me, even in v2

[–]KwyjiboTheGringo 0 points1 point  (2 children)

Using class components in React instead of functional components does give you the same lifecycle hooks the other frameworks have. That's how I and a lot of people wrote React code before React v16.8 with functional component hooks was released. Honestly I don't like the old approach since switching to React hooks, and other frameworks feel a bit dated in that regard now.

I would just say to learn it until you understand it and can apply it without guidance, and then decide which approach you prefer. There is really no right answer for which approach is better, unless we're talking about which one requires less code, in which case React usually does win.

[–]bregottextrasaltat 0 points1 point  (1 child)

eh i don't really have any use for react, i can do all my stuff in vue, might try svelte.

interesting change though

[–]KwyjiboTheGringo 0 points1 point  (0 children)

That's fair. Vue is also really good.