VueJs добавить нереактивную опору из родительского в пользовательский компонент? - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь понять, как экономно использовать систему реактивности. Я понимаю, что параметры $ для компонента предназначены для нереактивных данных и, как правило, задаются в методе create () или mount () изнутри самого себя. Но есть ли способ передать неактивные реквизиты на init от родителя?

Для простого примера:

  • Допустим, у меня есть компонент, который отображает значение в валюте,
  • 99% валюты времени будет составлять USD, а
  • 100% валюты времени не изменится после создания экземпляра.
  • Но значение должно быть реагирующим.
    (это дурацкий пример, просто чтобы продемонстрировать концепцию)
props: {
    value: {
        type: Number,
        required: true,
    },
    currency: {
        type: String,
        default: 'USD',
    },
},

Но я не хочу тратитьнаблюдатель за валютой, так как он никогда не изменится.

Могу ли я как-то передать его как необработанный вариант $? Есть ли другой способ сделать это? Или наблюдатели настолько дешевы, что мне не стоит беспокоиться об эффективности в масштабе?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 23 октября 2019

Чтобы получить нереактивное поле, используйте обычный атрибут HTML вместо объявленного свойства и получите к нему доступ через компонент $attrs объект.

Я бы выбрал Vue propertyхотя. Он безопасен, проверен, а накладные расходы незначительны.

<my-element currency='12' />
const currency = parseFloat(this.$attrs.currency)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...