У меня есть компонент, который я хотел бы выпустить в NPM с простой функциональностью v-model.
поэтому было бы идеально, если бы он мог работать на vuejs 2/3 взаимозаменяемо.
Я могу перебрать поведение для обоих, настроив компонент на испускание input и update:modelValue, но более элегантным решением было бы проверить реализацию пользователя и испустить соответственно. Есть ли свойство «версия», доступное где-то в цепочке инструментов во время выполнения? В качестве альтернативы, что было бы (или одним из) лучших способов изящно определить версию сборки клиента?





С: Vue.version
import Vue from 'vue'
import App from './App.vue'
console.info(Vue.version);
new Vue({
render: h => h(App),
}).$mount('#app')
Ссылка: https://www.positronx.io/how-to-check-current-vue-js-application-version/
Вариант 3:
import * as Vue from 'vue';
console.info(Vue.version) // "3.0.0"
Вариант 2:
import Vue from 'vue';
console.info(Vue.version) // "2.6.12"
Чтобы сделать действительное определение между ними, вы можете сделать это:
import * as Vue from 'vue';
// Make copy to prevent import warning in Vue 2
const vueObject = { ...Vue };
let version;
if (vueObject.default) version = 2;
if (vueObject.version && vueObject.version[0] === '3') {
version = 3;
}