computed свойство emailObjectsemailObjects() {
return this.emails.map(email => ({
email,
isActive: email.includes(this.search),
});
},т.е. тут вместо массива просто-email'ов делается массив объектов, где и email и свойство isActive, которое для данного адреса означает, включает он искомое или нет. [
['text', 'lorem ipsum dolor'],
['copy', 1],
['text', 'sit amet'],
['copy', 2],
] если я правильно понял, что каждый из плейсхолдеров копирует значение после вертикальной черты – первый копирует 1, второй 2.<template v-for="item in items">
<component :is="text" v-if="item[0] === 'text'">{ item[1] }</component>
<component :is="copy" v-if="item[0] === 'copy'" :value="item[1]" />
</template> this.$emit('paginate',page);- <BasePagination v-model="page" :count="countProducts" :car="car"></BasePagination>
+ <BasePagination @paginate="paginate" :count="countProducts" :car="car"></BasePagination>и добавить метод обработчик сего:methods: {
paginate(page) {
this.page = page;
},
}, isDone (true / false).import(moduleName). Но у этого способа главный недостаток: WebPack соберёт в отдельный чанк все файлы с флагами, и бандл будет тяжеловат.import ru from "svg-country-flags/svg/ru.svg";
import ua from "svg-country-flags/svg/ua.svg";
// ...
// и там же экспорты:
export ru;
export ua;
// ...import { ru, ua } from './mySuperModule';И Webpack разберётся и включит в бандл только нужное.<div v-for="messages in message">{{ messages.name }}</div>computed: {
thirdName() {
if (this.messages.length >= 3) {
return this.messages[2].name;
}
}
},и показывайте его, когда не пустое: <div v-if="thirdName">Имя: {{ thirdName }}</div>const DTF = new Intl.DateTimeFormat('ru-RU');
export default {
name: "App",
data() {
return {
dateRange: { start: new Date(), end: new Date() },
};
},
computed: {
display_value() {
return [this.dateRange.start, this.dateRange.end].map(DTF.format).join(" - ");
}
},
};:value этот display_value.{{ }} теги не пройдут. Поэтому надо использовать свойство v-html:<div class="textmessage" v-html="123<br>321"></div><div class="textmessage" v-html="myproperty"></div>JSdata() {
return {
myproperty: "123<br>321",
};
},
// или вычисляемое свойство
computed: {
myproperty() {
return "123<br>321";
}
},<!-- template компонента -->
<button @click="this.$emit('buttoned')">не нажимать</button>
<!-- template страницы -->
<Component1 v-on:buttoned="triggerComponents" />
<!-- надо написать метод triggerComponents(), который поменяет данным true/false -->oneActive, twoActive не в data, а в state глобально доступного store. По кнопкам из компонентов запускать мутации.