v-if
с этим геттером. Пока данных нет - экземпляр компонента не будет рендериться, а значит и мутация, требующая отсутствующих данных, тоже вызвана не будет, а значит и ошибки не будет. v-for
.links: [
{ title: 'link #1', to: { name: 'AdmissionActList' } },
{ title: 'link #2', to: { name: 'ShiftsTask' } },
// ну и так далее
],
<ul class="list-unstyled components">
<b-nav-item
v-for="link in links"
:to="link.to"
@click.prevent="sidebarCollapse"
>{{ link.title }}</b-nav-item>
</ul>
в зависимости от значения переменной, нужно рендерить либо<div class="link">контент</div>
либо<router-link to="/path" class="link">контент</router-link>
v-if
/ v-else
.<component v-bind="bullshit" class="link">контент</component>
computed: {
bullshit() {
const attrs = {};
attrs.is = this.isLink ? 'router-link' : 'div';
if (this.isLink) {
attrs.to = '/path';
}
return attrs;
}
}
:value="name"
.v-for="(name, i) in names"
, v-model="checkboxValue[i]"
. v-for="post in posts.slice(0, определённое количество)"
v-show="showDocs"
. Обработка клика станет выглядеть так: @click="showDocs = !showDocs"
.style.display
вовсе не none, а пустая строка (скорее всего - вы ведь элемент через css изначально скрываете, да?).Так не получиться, так как вывожу элементы в цикле v-for.
data: () => ({
checked: null,
items: [ 'hello, world!!', 'fuck the world', 'fuck everything' ],
}),
<label v-for="(n, i) in items">
<input
type="checkbox"
:checked="checked === i"
@change="checked = $event.target.checked ? i : null"
>
{{ n }}
</label>
$router.push
, сама текущая страница из свойства компонента станет его параметром и будет браться из параметров маршрута. Примерно так. Не знаю, похоже ли это на то, что вам надо, если нет - кидайте свой код в песочницу, тогда возможно, смогу подсказать точнее. computed: {
isFilledAll() {
return Object.values(this.user_inputs).every(n => n.isFilled);
},
},
isFilledAll() {
return Object.values(this.user_inputs).every(n => Object.values(n).every(m => m !== null));
}
findIndex(item => item.id = id)
Что стоит доизучить?
addToCart(state, id) {
state.cartItems.push(state.products.find(n => n.id === id));
},
addToCart: (state, product) => state.cartItems.push(product),
addToCart({ cartItems, products }, id) {
let product = cartItems.find(n => n.id === id);
if (!product) {
cartItems.push(product = {
...products.find(n => n.id === id),
quantity: 0,
});
}
product.quantity++;
},
как это правильно называется
div
с различными background-color
, один вложен в другой, у родительского ширина 100%, у дочернего - в зависимости от текущего значения. можно как-то, грубо говоря, весь изменяемый объект наверх посылать
@change="onChange"
methods: {
onChange(e) {
this.userProps[e.name] = e.val;
}
}
Это нормально...
...или можно как то его оставить что бы не рендерит по новой?
[] || this.$store.getters.getMyData()
всегда будет иметь своим значением пустой массив. Это первое. Второе - а что, ваш геттер действительно возвращает функцию? Или вы полагаете, будто его надо вызывать? Третье - если по вашей задумке значением myData может быть пустой массив, то почему вы работаете с myData как с объектом? Или, почему вы, зная, что нужен объект с определёнными свойствами, в качестве заглушки используете массив?myData() {
return this.$store.getters.getMyData || { list: [] };
},