bus = new Vue() хоть и прост, но чреват утечками памяти. Лучше делать шину через глобальный миксин, который по destroy автоматически очистит всех слушателей конкретного компонента. <select v-model="species"> data: {
species: '', searchCharacter() {
return this.characters.filter((character) => {
return character.name.toLowerCase().includes(this.search.toLowerCase())
&& character.species.toLowerCase().includes(this.species.toLowerCase());
});
},const { transformSync } = require("@babel/core");
const fs = require('fs');
const babelTransform = {
transformCode: (_, code) => transformSync(`(function(){${code}}())`, {
filename: "",
ast: false,
retainLines: true,
babelrc: true,
compact: true,
minified: true
}).code.replace(/;$/,'')
};
const addBabelTransform = (options) => {
const { compilerOptions } = options;
const modules = compilerOptions && compilerOptions.modules ? compilerOptions.modules.concat(babelTransform) : [babelTransform];
return {
...options,
compilerOptions: {
...compilerOptions,
modules
}
}
}
module.exports = {
chainWebpack: config => {
config.module
.rule('vue')
.use('vue-loader')
.tap(addBabelTransform);
},
}components: { Vmanufacturers } - это сокращённая запись для:components: { "Vmanufacturers": Vmanufacturers }<Vmanufacturers ...>, либо версию преобразованную по правилам camel-kebab, т.е. <vmanufacturers ...> (без тире, заметьте), либо таки переименовать по правилам: components: { "vManufacturers": Vmanufacturers }, либо, наконец, сразу импортировать как надо:import vManufacturers from "@/components/information/v-manufacturers";
// ...
components: {
vManufacturers
} .vue по умолчанию просто Vue, без конкретизации свойств и прочего. Чтобы были нормальные ts-типы их надо отдельно генерировать. Для этого есть либа vuedts, она не идеальна, но свою работу делает.immediate: true - чтоб при первой загрузке тож запустилось). this, вполне очевидно, не указывает на текущий инстанс Vue(потому что какой для стора текущий?).Vue.component - имя можно через require.context получить, второй параметр - функция с import. `` кладётся простой текст, а в this.showInfo у тебя функция?<template>? Потому что .vue - это не .js, это отдельный формат файла, использующий отдельный микроязык шаблонов, который компилируется в js.formatter: (params) => {
const span = document.createElement('span');
span.onclick = this.showInfo;
span.textContent = 'Ask Price';
return [
span,
document.createTextNode(`: ${params.value[0]}`),
document.createElement('br'),
document.createTextNode(`Duration: ${params.value[1]}`),
]
}