To explain this a bit further, the main difference between older jQuery-based projects and newer (React|Vue|Angular|Svelte)-based projects is imperative vs. declarative programming.
It used to be that you give commands (e.g. “when the user clicks this button, change that label content and add CSS classes to these elements”). Very quick to add something small, but also hard to grow and maintain well. It’s easy to forget a command in some code paths.
Nowadays you declare state, and define how your UI is derived from that. This means you don’t give commands to change things, instead you change data and your UI is updated automatically. This makes it much easier to understand a component, and allows for maintainable growth.
To explain this a bit further, the main difference between older jQuery-based projects and newer (React|Vue|Angular|Svelte)-based projects is imperative vs. declarative programming.
It used to be that you give commands (e.g. “when the user clicks this button, change that label content and add CSS classes to these elements”). Very quick to add something small, but also hard to grow and maintain well. It’s easy to forget a command in some code paths.
Nowadays you declare state, and define how your UI is derived from that. This means you don’t give commands to change things, instead you change data and your UI is updated automatically. This makes it much easier to understand a component, and allows for maintainable growth.