if (localStorage.getItem('mediaObjViewSeen') === true) {
Ключи и значения всегда строки
data: () => ({
view: localStorage.getItem('view') || 'CardsView',
// ...
}),
watch: {
view: val => localStorage.setItem('view', val),
},
data: () => ({
views: [
{
name: 'CardsView',
btnClass: 'btn-left',
img: '...',
},
{
name: 'MediaObjView',
btnClass: 'btn-right',
img: '...',
},
],
// ...
}),
<button
v-for="n in views"
:class="[ n.btnClass, view === n.name ? 'btn-active' : '' ]"
@click="view = n.name"
>
<img :src="n.img">
</button>
view
в TweetPreview
, используете его значение как имя компонента:<component
:is="view"
:tweet="tweet"
/>
computed: {
task() {
return new Proxy(this.value, {
set: (target, prop, value) => {
this.$emit('input', { ...target, [prop]: value });
return true;
},
});
},
},
v-model
соответствующих полей ввода):<input type="checkbox" v-model="task.done">
<button v-if="task.done" @click="$emit('delete')">delete</button>
<task-element
v-for="(n, i) in todos"
v-model="todos[i]"
@delete="todos.splice(i, 1)"
></task-element>
когда нажимаю повторно чтобы остановить музыку, она не останавливается
использую известный компонент vue-select он довольно удобный но у него нет того что мне нужно, а именно отображения опций в виде html-кода а не текста
data: () => ({
index: 0,
items: [
[ 'hello, world!!', 'fuck the world', 'fuck everything' ],
[ '69', '187', '666' ],
[ '!!!', '???', ':::' ],
[ '+++', '***', '///' ],
],
}),
<ul v-if="index < items.length" @click="index++">
<li v-for="n in items[index]">{{ n }}</li>
</ul>
<button v-else @click="index = 0">давай заново</button>
Меняет только value в input без изменения модели
v-model
слушает событие input, так что добавьте event.target.dispatchEvent(new Event('input'))
<div>
<span>{{ item.questions[index]['description'] }}</span>
<span v-if="item.questions[index]['answer'] == 2">Да</span>
<span v-if="item.questions[index]['answer'] == 1">Нет</span>
</div>
<div v-for="n in item.questions">
<span>{{ n.description }}</span>
<span>{{ n.answer | answer }}</span>
</div>
filters: {
answer: val => [ 'Нет', 'Да' ][val - 1],
...
v-scroll-text="{ selector: '.source-label', speed: 10 }"
scrollText(el, { value: { selector, speed } }) {
...
пишу я на Vue, и к сожелению пока неочен хорошо знаком с Vue, поетому пока затрудняюсь подключить сей плагин
$('.selectpicker')
data: () => ({
items: Array.from(
{ length: 5 },
(_, i) => Array.from(
{ length: 5 },
(_, j) => i * 5 + j
)
),
active: null,
}),
watch: {
active(val) {
if (val) {
this.$nextTick(() => this.$refs.input[0].focus());
}
},
},
<table>
<tr v-for="(row, iRow) in items">
<td v-for="(val, iCol) in row" @click="active = { iRow, iCol }">
<input
v-if="active && active.iRow === iRow && active.iCol === iCol"
v-model="row[iCol]"
@keypress.enter="active = null"
ref="input"
>
<template v-else>{{ val }}</template>
</td>
</tr>
</table>