VUE 2
Подгружаю это:
vendor/npm-asset/vue/dist/vue.min.js
Создан был такой
myVue.js:
define(['vue'], function (Vue) {
window.Vue = Vue;
var VuePlugin = {
install: function (Vue) {
Vue.mixin({
methods: {
debounce: function (func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) {
func.apply(context, args);
}
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) {
func.apply(context, args);
}
};
},
}
});
}
};
Vue.use(VuePlugin);
return Vue;
});
Далее я вызывал
app.js:
define(function(require) {
var Vue = require('myVue');
var vm = new Vue({
el: '#app'
});
return vm;
});
И это работало.
VUE 3
Подгружаю это:
vendor/npm-asset/vue/dist/vue.global.prod.js
Изменяю
myVue.js:
define(['vue'], function (Vue) {
window.Vue = Vue.default;
var app = Vue.createApp({});
var VuePlugin = {
install: function (app) {
app.mixin({
methods: {
debounce: function (func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) {
func.apply(context, args);
}
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) {
func.apply(context, args);
}
};
},
}
});
}
};
app.use(VuePlugin);
return app;
});
И редактирую
app.js:
define(function(require) {
var app = require('myVue');
var vm = app.mount('#app');
return vm;
});
И ничего не происходит.
Я пробовал убрать
window.Vue = Vue.default;
из
myVue.js, но в этом случае возникает ошибка, о которой в консоли сообщается:
Uncaught TypeError: Cannot destructure '_Vue' as it is undefined.
Я пробовал оставить в
app.js:
var vm = new app({
el: '#app'
});
Но это, конечно, вызвало ошибку в консоли:
Uncaught TypeError: app is not a constructor
Други, я честно пытался с помощью ГГЛ и v3.ru.vuejs.org решить этот вопрос, но мне нужен ваш пинок. чтобы понять, что тут не так?
Заранее всех благодарю!