Basically my UI philosophy for the last 10 year has been "UI = app(state)" : What you see on the screen is the result of calling a (pure-ish) function passing it all the data of your app. When the data change, you call the same function with the new data and you get your updated UI.
React is basically built around that metaphor. The components are functions that call other components-function and return what is basically html. Except that not exactly true because it would be very inconvenient. React function components are not Pure function but they rely on side-effect. Components can have their own state, you can add imperative side effect and you don't actually output html but virtual element.
Still, it's all hidden away behind the metaphor of function. And I like it because it match my mental model of how UI works.
Now from what I understand, vue logic is exactly the same as React, you still compose components as if they were function. You still have data that flow down the call tree. Components can also have their own state and side effect.
The only difference is that Vue doesn't use the function metaphor. Vue tell you more explicitely that you're manipulating an object whereas react hide it away.
That's a tiny subtle difference and it's all in my head but it's there. I'm probably gonna get used to it.
A tiny example is the way you do loop.
In react you explicitely return what you want so if you want a list you return {{list.map(item => <MyComponent />)}}
In Vue instead you tell the framework via the v-for directives "Copy this template for each element of this list".
Again, deep down it's absolutely the same, but in my head there's a tiny difference in the way I think about my code and I don't like it.