July’s 2.7 brings the Composition API and script setup to the 2.x line, which removes the main reason to rush a migration.
// works in 2.7 and 3.x
<script setup>
import { ref, computed } from 'vue'
const count = ref(0)
const double = computed(() => count.value * 2)
</script>
// what 2.7 does NOT give you:
// Teleport, Fragments, multiple root nodes
// the reactivity rewrite (2.7 is still Object.defineProperty)
// the smaller runtime and better tree-shaking
The reactivity engine is still the 2.x one, so the array index and property addition caveats remain — this.$set is still required for a property added after creation. That is the substantive difference and it means code written against 2.7 can compile on 3 and still contain assumptions that only hold on 2.