#javascript #vue.js #plugins
#javascript #vue.js #Плагины
Вопрос:
Я написал и добавил globalerrorhandler (Vue.config.ErrorHandler, window.onerror, …)
Я следил за «Написанием плагина в vue» на веб-сайте vue.
Но я получаю следующую ошибку, и я не знаю почему: ‘MyPlugin’ не определен
Я создал папку плагинов в своем проекте. В эту папку я добавил еще одну папку «GlobalErrorHandler». В этой папке я добавил «MyPlugin.js «.
App.vue:
import MyPlugin from './plugins/GlobalErrorHandler'
Vue.use(MyPlugin);
Код в MyPlugin.js:
MyPlugin.install = function (Vue){
Vue.config.errorHandler = function(err, info) {
const toSend = {
"error": err,
"info": info
}
const jsonString = JSON.stringify(toSend);
const xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:8090/api/auth/event");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(jsonString);
console.log(jsonString);
};
}
Ответ №1:
MyPlugin
Объект должен сначала существовать, прежде чем добавлять к install
нему свойство:
const MyPlugin = {}; // Create the object
и MyPlugin.js необходимо экспортировать объект, иначе он не может быть импортирован:
export default MyPlugin; // export for importing
Собрать его вместе:
const MyPlugin = {};
MyPlugin.install = function (Vue){
Vue.config.errorHandler = function(err, info) {
const toSend = {
"error": err,
"info": info
}
const jsonString = JSON.stringify(toSend);
const xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:8090/api/auth/event");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(jsonString);
console.log(jsonString);
};
}
export default MyPlugin;