Значения по умолчанию для реквизита компонента Vue & как проверить, не установил ли пользователь опору?
1. как я могу установить значение по умолчанию для компонента prop в Vue 2? Например, есть простой movies компонент, который может быть использован таким образом:
<movies year="2016"><movies>
Vue.component('movies', {
props: ['year'],
template: '#movies-template',
...
}
но, если пользователь не указать year:
<movies></movies>
тогда компонент примет некоторое значение по умолчанию для year проп.
2. кроме того, каков наилучший способ проверить, не установил ли пользователь опору? Это хорошо образом:
if (this.year != null) {
// do something
}
или, может быть, этот:
if (!this.year) {
// do something
}
?
2 ответов:
Vueпозволяет указать значение по умолчаниюpropзначение иtypeнепосредственно, сделав реквизит объектом (см.:https://vuejs.org/guide/components.html#Prop-Validation):props: { year: { default: 2016, type: Number } }если передается неправильный тип, то он выдает ошибку и регистрирует ее в консоли, вот скрипка:
Это старый вопрос, но что касается второй части вопроса - как вы можете проверить, если пользователь установил/не установил опору?
проверка
thisвнутри компонента у нас естьthis.$options.propsData. Если prop присутствует здесь, пользователь явно установил его; значения по умолчанию не отображаются.это полезно в тех случаях, когда вы не можете действительно сравнить свои значения по умолчанию, например, если опора является функция.
Comments