Vux: Как тост, так и предупреждение являются двухсторонними, и всегда сообщают предупреждение при использовании одностороннего потока данных vuex

Созданный на 3 мая 2016  ·  12Комментарии  ·  Источник: airyland/vux

Версия

"vux": "0.0.106"

Android или iOS, какой браузер?

Все

Ваши коды

<toast :show="toast.show">{{toast.msg}}</toast>

Ожидаемое поведение и фактическое поведение.

Поскольку он используется в качестве глобального компонента, его подкомпоненты напрямую используют односторонний поток данных vuex для запуска всплывающего окна, но всплывающее окно с тостами и предупреждениями являются двухсторонними, поэтому они продолжают сообщать предупреждение, а обсессивно-компульсивное расстройство вызывает дискомфорт. .

Шаги по воспроизведению проблемы

Самый полезный комментарий

Комбинация vuex + vux также обнаружила предупреждение, привязанное к twoWay, при использовании компонента Popup. Вначале тоже хотелось прислушиваться к событиям, когда вносятся изменения!Позже я нашел здесь новое решение : вычисляемые свойства

Вот простой пример

<template>
  <popup :show.sync="showed">
    <group>
      <switch title="just switch" :value.sync="showed"></switch>
    </group>
   </popup>
</template>

<script>
export default {
  vuex: {
    getters: {
      getShow
    },
    actions: {
      updateShow
    }
  },
  computed: {
    showed: {
      get: function () {
        return this.getShow
      },
      set: function (val) {
        this.updateShow(val)
      }
    }
  }
}
</script>

По сравнению с событиями мониторинга, есть дополнительный уровень инкапсуляции атрибутов вычисления, но он также прощается, чтобы предупредить

Все 12 Комментарий

Итак, что вы предлагаете? TwoWay - это потому, что внутренняя работа компонента изменит представление, в противном случае статус будет ненормальным.

twoWay - это просто проверить, является ли это двусторонняя привязка, теперь нужно проверить предупреждение о времени

Поэтому я предлагаю отменить двустороннюю проверку привязки, но вы по-прежнему автоматически изменяете значение show внутри, так что, если вы используете двустороннюю внешнюю проверку, вы можете автоматически изменить значение.

Конечно, я здесь, чтобы контролировать ценность шоу извне.

Что вы думаете?

Разве это не просто проверка?

Конечно это просто проверка!

Вам не нужно писать двухсторонний, но он по-прежнему связан синхронизацией в компоненте, и он все еще может быть двусторонним.

Только что перешла на ВУЭ на месяц, дорога не глубокая, надеюсь посоветовать 😄

Это должна быть просто функция проверки привязки компонентов. Если вам не нужна двусторонняя привязка для показа Alert, вы можете изменить значение show только с помощью события on-hide .

Да, оповещение уже есть. Toast, я установил setTimeout, чтобы изменить привязку показа. Конечно, лучше всего иметь on-hide.

Я также думаю, что тосты и предупреждения не очень совместимы с vuex. Лучше всего иметь скрытые события и поддерживать тот же интерфейс, что и предупреждения.

@JianleiZhang Будет реализовано в следующем выпуске.

Комбинация vuex + vux также обнаружила предупреждение, привязанное к twoWay, при использовании компонента Popup. Вначале тоже хотелось прислушиваться к событиям, когда вносятся изменения!Позже я нашел здесь новое решение : вычисляемые свойства

Вот простой пример

<template>
  <popup :show.sync="showed">
    <group>
      <switch title="just switch" :value.sync="showed"></switch>
    </group>
   </popup>
</template>

<script>
export default {
  vuex: {
    getters: {
      getShow
    },
    actions: {
      updateShow
    }
  },
  computed: {
    showed: {
      get: function () {
        return this.getShow
      },
      set: function (val) {
        this.updateShow(val)
      }
    }
  }
}
</script>

По сравнению с событиями мониторинга, есть дополнительный уровень инкапсуляции атрибутов вычисления, но он также прощается, чтобы предупредить

@pzxbc Гениально: смайлик:

@pzxbc Я обнаружил, что отправка мутации для изменения значения gethow, а затем вычисление показанного атрибута передаст значение во внутреннее значение show всплывающего компонента для изменения состояния компонента. Вышеупомянутое - это то, что мне нужно, но я обнаружил, что следующий показанный атрибут вычисления вызовет функцию this.updateShow, привязанную к установке, потому что я использую console.log, чтобы найти, что mutaion вызывается дважды.

Мой подход:

      set: function (val) {
        if (val === false){
          this.updateAlert(val)
        }
      }
Была ли эта страница полезной?
0 / 5 - 0 рейтинги