Когда мы используем компоненты в Vue, мы часто используем свойства или реквизиты для передачи пользовательских фрагментов данных дочернему компоненту. Например, мы можем сообщить нашему дочернему компоненту, что для этой версии компонента имя установлено на мой-компонент:
<Component name="my-component" />
Если мы попытаемся вызвать этот компонент без реквизита name
, он вернет undefined
в коде или просто не будет текста при отображении в HTML. Допустим, наш Component
выглядит так:
<script> export default { props: { name: String }, mounted() { console.log(this.name); } } </script>
<template> <p> Hi {{ name }} </p> </template>
Все, что делает наш компонент, это определяет свойство name
типа String
, и консоль регистрирует это свойство. Он также отображает его в виде Hi {{ name }}
. Единственная проблема заключается в том, что если name
не определено при вызове компонента, имя по умолчанию не указывается.
Установка значений реквизита по умолчанию в Vue
Установить значения реквизита по умолчанию в Vue очень просто. Если вы используете Options API, то это так же просто, как расширить наше свойство в объект. Например, если мы хотим, чтобы наш name
имел значение по умолчанию 'там', мы обновляем нашу опору, чтобы она выглядела следующим образом:
export default {
props: {
name: {
type: String,
default: "there"
}
},
mounted() {
console.log(this.name);
}
}
Теперь, если имя не указано, в сообщении будет просто написано «Привет!».
Установка значений реквизита по умолчанию в Composition API
В API композиции для определения реквизита используется функция defineProps
. Эта функция следует тому же синтаксису, что и свойства, определенные в API параметров. Определение реквизита без значения по умолчанию выглядит так:
import { defineProps } from 'vue';
const props = defineProps({ name: String });
А затем, чтобы добавить значение по умолчанию, мы расширяем name
, чтобы иметь свойство по умолчанию, как и раньше:
import { defineProps } from 'vue';
const props = defineProps({ name: { type: String, default: "there" } });
Настройка реквизита в соответствии с требованиями Vue
Чтобы избежать необходимости устанавливать значение по умолчанию для свойства, мы можем сделать свойство обязательным, используя поле required
. Например, если мы хотим, чтобы наше свойство name
было определено, мы просто установили бы required
в true
:
<setup> import { defineProps } from 'vue';
const props = defineProps({ name: { type: String, required: true } }); </script>
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.