It is you.
Vue3 sounds perfect, The major upgrade from v2 is the use of Proxies (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...), which was missing at the time of Angular v1, which enables native dual binding - and global dual binded deep complex objects.
I personally think React is way over-complicated - and was solving a debugging problem in 2015 - when proxy were not around.
Now look at this vue3 code, and please try to do the same with React
// file A.js - uses the basic vue proxy implementation
import {ref} from 'vue';
export const a = ref([])
a.value.push(1)
// 'a' could be a complex library - that is self contained.
// file B.vue - the actual .vue component
-
{{key}}=>{{value}}
Add element
import {a} from A.js
component('hello', {
setup() {
const add = () => a.push(a.length+1)
return {
arr: a,
add
};
}
});
</code></pre>
/* No props here, it uses a global object
For example, you could have a library that keeps an array of loggedin friends, that connects to websockets - and updates in real time - totally external to the vue UI. All you need is to import it - no need to pass it as a prop - or dependency inject it the angular2+ way
*/</p><p>This is simply not possible to do this with React, instead everything needs to be passed as props, or context. Hooks are even harder than that - as the side effect detection (by design) is dependent on the order of the hook declaration - making the actual reusability of the whole hook ecosystem quite complex and subject to headaches.</p><p>Also, keep in mind that Vue3 is now more popular than Angular2, and that it reaches the same number of stars on Github than React - while the number of developers being proficient with Vue is way lower.</p><p>In my own personal experience, developing a complex webapp with Vue is way easier than with React - and the developers familiar with it are usually way more experienced than the React uni under-graduate (pretending to be senior full stack developers - because they can write node.js - and spawn a firebase google hosted instance) - because those Vue devs - they know - and because they know - they choose Vue.</p><p>Vue4 engine - IMHO - could be written in Rust and compiled to web-assembly - if that makes sense in term of performances.</p>
Check out valtio if you want to do proxy based state management in react.
https://github.com/pmndrs/valtio
https://codesandbox.io/s/bitter-night-mm4xes?file=/src/App.j...
// a.js
import { proxy } from "valtio";
export const a = proxy([]);
a.push(1);
// App.jsx
import { useSnapshot } from "valtio";
import { a } from "./a";
const add = () => a.push(a.length + 1);
export default function App() {
const snap = useSnapshot(a);
return (
{snap.map((value, index) => (
- {`${index}=>${value}`}
))}
Add element
);
}