A props declaration exists twice in a TypeScript component — once as a type and once as the runtime object Vue needs — and the type-only form generates…
3.2 in August makes the compiler macro stable. Every component ended with a return listing what it had just declared, and a compiler can work that out.
v-memo skips the update of a subtree when the dependencies it lists have not changed, which is a manual optimisation and should be treated as one. The failure…
Every Composition API component ended with a return statement listing what it had just declared, which is information a compiler can work out. Every top-level binding is exposed…
A watcher that runs immediately and assigns to another ref is deriving a value, which is what computed is for and does better. The computed version tracks its…
A composable holding its state in a reactive object cannot return it directly, because every caller destructures the result and loses reactivity doing so. toRefs creates a ref…
Vue 2 required a single root element, so every component that logically returned two siblings had a wrapper div whose only purpose was satisfying the compiler. The dt…
A mixin merges properties into a component with no indication of where anything came from, and two mixins defining the same name silently collide. The call site names…
Two ways to make something reactive, one of which requires .value everywhere in script and neither of which requires it in a template. The rule that works is…