Part of the desktop improvements project involves implementing a search type-ahead widget using Vue.
v2.6 is the current & stable version of Vue at the time of this writing. It’s built using ES5 and it technically supports Internet Explorer 9 and up[1].
The most crucial ES5 feature used by Vue v2 is Object.defineProperty, which is used to build its reactivity system.
Accoding to the MediaWiki browser support matrix[2] , MediaWiki currently serves javascript to Internet Explorer 11 and up.
The next major release of Vue, v3, is set to be released in the very near future. This version of Vue is written with ES6 and does not support Internet Explorer 11 by default. Vue 3 uses the es6 Proxy feature as a core part of its new reactivity system, which is supported by Edge 12 and up.
However, Vue 3 will also decouple it's reactivity system from Vue core into a separate package, and will ship with a compatibility build that supports IE11 [2], using the old reactivity system. But Vue 3 has not yet been officially released (beta is available[4]), should we start with it anyway?
Open questions:
- Should we start DIP using Vue 2 or Vue 3
- If we start with Vue 2, will that require a major effort to upgrade to Vue 3?
- If we start with Vue 3, should we use the old reactivity system & support IE 11?
- Does Vue 3 need another security review? Vue 2 was reviewed in T168264.
- What version is or will be available in Core?