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]}`),
]
}
v-if=false
, на странице нет никаких элементов, делаем два - для data-toggle="tooltip"
элементов(которых нет) активируем возможность всплывашек, делаем три - v-if=true
появляется свежий элемент который ни о чём не подозревает.b-tooltip
в котором на mounted
активируйте ваш jquery.tooltip()
.