Свойства используются для передачи состояния дочерним компонентам. Узнай о них все
- Определите опору внутри компонента
- Принять несколько реквизитов
- Установите тип опоры
- Сделайте опору обязательной
- Установить значение по умолчанию для опоры
- Передача props компоненту
Определите опору внутри компонента
Свойства - это способ, которым компоненты могут принимать данные от компонентов, которые их включают (родительские компоненты).
Когда компонент ожидает одну или несколько опор, он должен определить их в своемprops
свойство:
Vue.component('user-name', {
props: ['name'],
template: '<p>Hi {{ name }}</p>'
})
или в однофайловом компоненте Vue:
<template>
<p>{{ name }}</p>
</template>
<script>
export default {
props: [‘name’]
}
</script>
Принять несколько реквизитов
У вас может быть несколько реквизитов, добавив их в массив:
Vue.component('user-name', {
props: ['firstName', 'lastName'],
template: '<p>Hi {{ firstName }} {{ lastName }}</p>'
})
Установите тип опоры
Вы можете указать тип опоры, используя объект вместо массива, используя имя свойства в качестве ключа каждого свойства и тип в качестве значения:
Vue.component('user-name', {
props: {
firstName: String,
lastName: String
},
template: '<p>Hi {{ firstName }} {{ lastName }}</p>'
})
Допустимые типы, которые вы можете использовать:
- Нить
- Число
- Логический
- Множество
- Объект
- Дата
- Функция
- Символ
Когда тип не совпадает, Vue предупреждает (в режиме разработки) в консоли с предупреждением.
Типы опор могут быть более сочлененными.
Вы можете разрешить несколько разных типов значений:
props: {
firstName: [String, Number]
}
Сделайте опору обязательной
Вы можете потребовать, чтобы реквизит был обязательным:
props: {
firstName: {
type: String,
required: true
}
}
Установить значение по умолчанию для опоры
Вы можете указать значение по умолчанию:
props: {
firstName: {
type: String,
default: 'Unknown person'
}
}
Для объектов:
props: {
name: {
type: Object,
default: {
firstName: 'Unknown',
lastName: ''
}
}
}
default
также может быть функцией, которая возвращает соответствующее значение, а не фактическое значение.
Вы даже можете создать собственный валидатор, что отлично подходит для сложных данных:
props: {
name: {
validator: name => {
return name === 'Flavio' //only allow "Flavios"
}
}
}
Передача props компоненту
Вы передаете опору компоненту, используя синтаксис
<ComponentName color="white" />
если то, что вы передаете, является статическим значением.
Если это свойство данных, вы используете
<template>
<ComponentName :color=color />
</template>
<script>
…
export default {
//…
data: function() {
return {
color: ‘white’
}
},
//…
}
</script>
Вы можете использовать тернарный оператор внутри значения prop, чтобы проверить истинное условие и передать значение, которое от него зависит:
<template>
<ComponentName :colored="color == 'white' ? true : false" />
</template>
<script>
…
export default {
//…
data: function() {
return {
color: ‘white’
}
},
//…
}
</script>
Скачать мою бесплатнуюСправочник по Vue
Больше руководств по vue:
- Обзор Vue.js
- Интерфейс командной строки Vue.js: узнайте, как его использовать
- Инструменты разработчика Vue.js
- Настройка VS Code для разработки Vue
- Создайте свое первое приложение с Vue.js
- Однофайловые компоненты Vue.js
- Шаблоны и интерполяции Vue.js
- Директивы Vue.js
- Методы Vue.js
- Вычисляемые свойства Vue.js
- Стилизация компонентов Vue.js с помощью CSS
- Наблюдатели Vue.js
- Методы Vue против наблюдателей против вычисляемых свойств
- Фильтры Vue.js
- Компоненты Vue.js
- Слоты Vue.js
- Свойства компонента Vue.js
- События Vue.js
- Связь компонентов Vue.js
- Vuex, государственный менеджер Vue.js
- Vue, используйте компонент внутри другого компонента
- Vue, как использовать опору в качестве имени класса
- Как использовать SCSS с однофайловыми компонентами Vue.js
- Использование Tailwind с Vue.js
- Маршрутизатор Vue
- Динамически отображать компонент Vue
- Шпаргалка по Vue.js
- Храните данные Vue в localStorage с помощью Vuex
- Как динамически применять класс с помощью Vue
- Vue, как использовать v-модель
- Vue, почему данные должны быть функцией
- Roadmap to become a Vue.js developer in 2020