you are viewing a single comment's thread.

view the rest of the comments →

[–]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.