• Как остановить setInterval в vue 3 watch?

    0xD34F
    @0xD34F Куратор тега Vue.js
    После очистки clearInterval он чудесно продолжает работать.

    Брехня.

    Не продолжает.

    Или не он.

    О каком интервале речь?

    У вас их несколько.

    На каждое изменение длины массива - новый интервал.

    Может, не надо запускать новый, если один уже есть?
    Ответ написан
    Комментировать
  • Как получить выбранный select в списке v-for?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Добавить select'у поддержку директивы v-model:

    props: {
      modelValue: {
        type: String,
        default: '',
      },
      ...

    <select
      :value="modelValue"
      @input="$emit('update:modelValue', $event.target.value)"
    >
      <option
        v-for="n in options"
        v-text="n.label"
        :value="n.value"
      ></option>
    </select>

    В родительском компоненте, сделать свойство selected вместо числа массивом и хранить там выбранные значения:

    data: () => ({
      selected: Array(10).fill(null),
      ...
    }),
    methods: {
      getValue(index) {
        this.active = index;
        console.log(this.selected[index]);
      },
    },

    <div
      v-for="(n, i) in selected"
      class="test__item"
      :class="{ test__item_active: i === active }"
    >
      <span @click="getValue(i)">элемент списка</span>
      <Select v-model="selected[i]" :options="options" />
    </div>
    Ответ написан
    Комментировать