Vue.js как правильно отправлять реквизит в виде флагов в v-show?

#vue.js #vue-component #flags #vue-props

#vue.js #vue-компонент #флаги #vue-props

Вопрос:

Например, у меня есть две асинхронные службы. Давайте предположим, что обе службы доступны в момент загрузки приложения и сигнализируют об этом, возвращая true . У меня есть два свойства (‘servconn’ и ‘netconn’), которые получают эти логические флаги. Затем я передаю эти два свойства отдельному компоненту в качестве реквизита. В этом отдельном компоненте у меня есть два окна с предупреждениями, которые отображаются в зависимости от доступности служб.

Если вы посмотрите на пример изолированной среды, проблема в том, что окна предупреждений остаются неподвижными до того, как компонент получит флаги.

Конечно, если я изменю начальные флаги на true в разделе data(), тогда все будет работать, но это логически неверно, а также флаги могут быть разными в зависимости от доступности служб. Каков правильный способ добиться этого? Есть ли лучший способ сделать это? Спасибо.

Нажмите кнопку со значком «Обновить песочницу», чтобы посмотреть, как это работает. Вот песочница

Комментарии:

1. Инициализируйте значения ваших данных null вместо false и отображайте предупреждения только тогда, когда значение точно равно false : === false . Таким образом, null и true не будут отображать предупреждение.

2. если ваше приложение зависит от указанных служб , то перед загрузкой приложения оно должно проверить и показать, что его проверка выполняется, а затем, если какой-либо сбой, только тогда отображаются ошибки, иначе ничего не будет отображаться, и все хорошо. Обычно ошибка предупреждения отображается только в том случае, если службы отключены после вызова api или чего-то подобного. Но я полагаю, что если вы добавили статус checked и проверки, которые были true, тогда известно, что его проверяют codesandbox.io/s/vue-prop-send-flag-forked-zmncg?file=/src / … кстати, используйте v-если еще у вас есть куча скрытых оповещений в dom, v-show хорош только в том случае, если вам нужно прикрепить к нему обработчики событий

3. @GuillaumeF. Спасибо за ваш комментарий. Да, ===false будет работать как вариант. Но в этом случае я должен удалить тип по умолчанию для полученных реквизитов, другим способом использование null выдает ошибку неправильного типа.

4. @LawrenceCherone Спасибо за ваши предложения. Да, именно поэтому я решил отслеживать службы при отображении заставки. Что, если мне нужно просмотреть эти свойства, чтобы принять решение; ваш пример все еще применим к нему или ему нужен другой подход? Как вы думаете, лучше ли объединять свойства одного объекта для просмотра объекта? Потому что я также наблюдаю за ними netconn и servconn свойствами. Например, если служба ответила и готова, тогда выполните задачу.

5. в наблюдателе вы можете делать 'state.netconn':function().. etc, не нужно смотреть глубоко