@kirill-93

Можно ли использовать mixin в разных компонентах vue?

Допустим, я создал файл mixin.js
module.exports = {
    manage: {
        data: function () {
            return {
                errorOnUpdate: false,
            }
        },
        methods: {
            update: function() {
                //some code
                if (error) {
                    this.errorOnUpdate = true;
                }
            }
        }
    },
};


Теперь я этот файл подключаю в нескольких компонентах через свойство mixins.
Если в одном компоненте произойдет ошибка, будет ли это видно в другом?

Если нет, то подскажите, как правильно организовать такую работу:
У меня есть форма редактирования профиля с повторяющимися элементами, которые я вынес в компонент, чтобы не дублировать код.
Структура такая:
/components
  /form
    /profile
      /contacts

И вот у меня на странице компонент /form/profile/main.vue, в котором есть поля для ввода данных, но помимо этого внутри этого компонента подставляется компонент /form/profie/contacts.vue, которые тоже имеет поля для ввода.
И в main.vue и в contacts.vue при ввода вызывается метод update из миксина, и с этим все хорошо, но как быть с ошибкой?
  • Вопрос задан
  • 477 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Если в одном компоненте произойдет ошибка, будет ли это видно в другом?

Если нет, то подскажите, как...

vuex

Переносите errorOnUpdate в хранилище, а в миксине делаете computed свойство, достающее errorOnUpdate и метод, который будет дёргать мутацию, меняющую значение errorOnUpdate (или просто заменяете присваивание вызовом мутации в методе update, тут вам виднее).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы