Значения по умолчанию для реквизита компонента 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
}


?

831   2  

2 ответов:

Vue позволяет указать значение по умолчанию prop значение и type непосредственно, сделав реквизит объектом (см.:https://vuejs.org/guide/components.html#Prop-Validation):

props: {
  year: {
    default: 2016,
    type: Number
  }
}

если передается неправильный тип, то он выдает ошибку и регистрирует ее в консоли, вот скрипка:

https://jsfiddle.net/cexbqe2q/

Это старый вопрос, но что касается второй части вопроса - как вы можете проверить, если пользователь установил/не установил опору?

проверка this внутри компонента у нас есть this.$options.propsData. Если prop присутствует здесь, пользователь явно установил его; значения по умолчанию не отображаются.

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

Comments

    Ничего не найдено.