с перезагрузкой страницы
el.remove()
) или делайте неактивными (el.disabled = true
). Например:<form @submit="onSubmit">
<div v-for="(v, k) in formData">
<div>{{ k }}:</div>
<div><input v-model="formData[k]" :name="k" :ref="k"></div>
</div>
<button>submit</button>
</form>
data: () => ({
formData: {
forename: '',
surname: '',
email: '',
},
}),
methods: {
onSubmit() {
Object.entries(this.formData).forEach(([ k, v ]) => !v && (this.$refs[k][0].disabled = true));
},
},
Предполагаю, что это связано с...
watch: {
secondList(val) {
if (!val[this.secondElementSelected]) {
this.secondElementSelected = 0;
}
},
},
:value="secondList[secondElementSelected]?.elementYes"
<div v-html="свойствоСодержащееHTML" @click="onClick">
methods: {
onClick(e) {
if (e.target.tagName === 'BUTTON') {
const id = e.target.closest('.product').dataset.id;
...
}
},
...
},
async created() {
await this.getAsyncData();
this.$watch('some_value', value => {
...
});
},
computed: {
itemsWithBullshitCounter() {
let counter = -1; /* или 0, если хотите, чтобы нулевой элемент массива получил ненулевой индекс
в том случае, если для него не выполняется условие обнуления */
return this.items.map((n, i) => ({
...n,
counter: counter = (здесь проверяете, надо ли обнулить счётчик
? 0
: counter + 1
),
}));
},
},
<div v-for="n in itemsWithBullshitCounter">
вместо индекса используете значение добавленного свойства: {{ n.counter }}
</div>
computed: {
chunkedItems() {
return this.items.reduce((acc, n, i) => {
if (!i || на текущем элементе надо сбросить индексацию) {
acc.push([]);
}
acc[acc.length - 1].push(n);
return acc;
}, []);
},
},
<template v-for="chunk in chunkedItems">
у каждого куска индексация независимая:
<div v-for="(n, i) in chunk">{{ i }}</div>
</template>
methods: {
createStrangeIndex(arr, baseIndex) {
let index = 0;
while (baseIndex > 0 && на элементе arr[baseIndex--] сбрасывать индексацию не надо) {
index++;
}
return index;
},
},
<div v-for="(n, i) in items">{{ createStrangeIndex(items, i) }}</div>
есть метод orgajax - он тянет данные с сервера, в том числе и HTML код
we can mark components asfunctional
, which means that they’re stateless (no reactive data) and instanceless (nothis
context)
как установить страницу пагинации (к примеру 2-ую или 3-ю)
data: () => ({
page: 1,
...
}),
<v-data-table
:page.sync="page"
...
как установить обработчик на клик по стрелке вперед
watch: {
page(val) {
...
},
},
:options="{ scrollWheelZoom: false }"
@update:zoom="zoom = $event"
@wheel.native="onWheel"
methods: {
onWheel(e) {
if (e.deltaY < 0) {
this.zoom++;
e.preventDefault();
}
},
},
options: [
{
...
propToBeMultipliedByPrice: 'area',
},
{
...
propToBeMultipliedByPrice: 'perimeter',
},
],
{{ option.price * calc[option.propToBeMultipliedByPrice] }}
{{ dish[`title_${lang}`] }}
v-text="dish['title_' + lang]"
:text.prop="dish['title_'.concat(lang)]"