Ответы пользователя по тегу Vue.js
  • Как работает этот код?

    @Kutuzov_ska
    Внимание! Так делать нельзя и небезопасно, но для пояснения можно.
    В computed - нельзя модифицировать данные из data.

    Вот вариант с полным присвоением
    5f73683e8bc51733381337.png

    Ваша ошибка вероятно кроется в понимании реактивности.
    Если почитаете документацию, там если не ошибаюсь будет пункт о том, как она работает.
    https://ru.vuejs.org/v2/guide/reactivity.html
    Например в объектах надо вызывать this.$set... у массивов отслеживаются push, pop... и т.д.

    То есть изменение
    a=1;
    a=2;

    Vue видит правильно. А вот:
    a = {};
    a= {lol:"kek"}

    Уже могут быть проблемы.

    При каждом нажатии на чекбокс, вью пробегает по массиву todos.
    В момент самого первого нажатия он понимает что для массива todos, например объекту 1 вы добавили свойство calc, но значение он не зафикисровал.

    Когда вы кликаете на 2 чекбокс, он опять проходить ВЕСЬ массив, и Vue повторно проверяет calc у 1 и уже тогда понимает что значение у него изменилось (calc то уже существует), а у второго он опять его только создает.
    Ответ написан
    2 комментария
  • Как понять что нужно разделять компонент на новые компоненты (vue)?

    @Kutuzov_ska
    Золотое правило. Если поймал себя на том, что копипастишь больше 6-7 строк - выноси в отдельную функцию:)

    То есть, если эта одна кнопка - класс повесил и забыл. Если ты понимаешь, что именно такую кнопку, с какой то определенной логикой надо где-то использовать еще - то в компонент.

    Но тут я плохой советчик. Я почти никогда не делал такие компоненты. Обходился классами. А вот компоненты вроде Header, Footer, Cooments (комментарии) - делаю всегда.
    Ответ написан
  • Не видит картинки в карусели vuetifyjs. Как правильно прописать пути?

    @Kutuzov_ska
    Если еще актуально, можно попробовать сделать так:

    import image1 from '../assets/img1.jpg'; // Путь прямой, не через @
    import image2 from '../assets/img1.jpg';
    
    export default {
      data: () => ({
        items: [image1, image2]
      })
    }


    Попробуйте так. Но концептуальнее будет, настроить nginx/apache, раздавать статику и картинки через него, а в img передавать уже просто пути;

    <v-carousel-item
                 v-for="(item,i) in items"
                  :key="i"
                  :src=" `http://***/img${i}.jpg` "
                   ></v-carousel-item>
                </v-carousel>
    Ответ написан
    Комментировать