Vue.js-Komponenten
Komponenten sind eine der leistungsstärksten Funktionen von Vue.js.
Komponenten können HTML-Elemente erweitern und wiederverwendbaren Code kapseln.
Das Komponentensystem ermöglicht es uns, große Anwendungen mit unabhängigen, wiederverwendbaren kleinen Komponenten zu erstellen. Nahezu jede Art von Anwendungsoberfläche kann in einen Komponentenbaum abstrahiert werden:

Die Syntax zum Registrieren einer globalen Komponente ist wie folgt:
Vue.component(tagName, options)
tagName ist der Komponentenname und options sind die Konfigurationsoptionen. Nach der Registrierung können wir die Komponente wie folgt aufrufen:
<tagName></tagName>
Globale Komponente
Alle Instanzen können globale Komponenten verwenden.
Beispiel für eine globale Komponente
Registrieren Sie eine einfache globale Komponente 'example' und verwenden Sie sie:
Ausprobieren »
Lokale Komponente
Wir können lokale Komponenten auch in den Instanzoptionen registrieren, sodass die Komponente nur in dieser Instanz verwendet werden kann:
Beispiel für lokale Komponente
Registrieren Sie eine einfache lokale Komponente 'example' und verwenden Sie sie:
Ausprobieren »
Prop
Prop ist ein benutzerdefiniertes Attribut, das von untergeordneten Komponenten verwendet wird, um von übergeordneten Komponenten übergebene Daten zu empfangen.
Die übergeordnete Komponente muss Daten über Props an die untergeordnete Komponente übergeben, und die untergeordnete Komponente muss "prop" mithilfe der props-Option explizit deklarieren:
Prop-Beispiel
Ausprobieren »
Dynamische Prop
Ähnlich wie bei der Verwendung von v-bind, um HTML-Attribute an einen Ausdruck zu binden, können Sie v-bind auch verwenden, um Prop-Werte dynamisch an Daten der Elternkomponente zu binden. Wann immer sich die Daten der Elternkomponente ändern, wird die Änderung auch an die Kindkomponente weitergegeben:
Prop-Beispiel
Ausprobieren »
Im folgenden Beispiel wird die v-bind-Direktive verwendet, um das Todo an jede wiederholte Komponente zu übergeben:
Prop-Beispiel
Ausprobieren »
Hinweis: Prop ist eine Einweg-Bindung: Wenn sich die Eigenschaften der übergeordneten Komponente ändern, werden sie an die untergeordnete Komponente übergeben, aber nicht umgekehrt.
Prop-Validierung
Komponenten können Validierungsanforderungen für Props festlegen.
Um die Validierungsmethode für Props anzupassen, können Sie ein Objekt mit Validierungsanforderungen für die Werte in Props angeben, anstatt eines Arrays von Zeichenfolgen. Zum Beispiel:
Vue.component('my-component', {
props: {
// 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
propA: Number,
// 多个可能的类型
propB: [String, Number],
// 必填的字符串
propC: {
type: String,
required: true
},
// 带有默认值的数字
propD: {
type: Number,
default: 100
},
// 带有默认值的对象
propE: {
type: Object,
// 对象或数组默认值必须从一个工厂函数获取
default: function () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
}
})
Wenn die Prop-Validierung fehlschlägt, erzeugt Vue (im Entwicklungs-Build) eine Konsolenwarnung.
type kann einer der folgenden nativen Konstruktoren sein:
StringNumberBooleanArrayObjectDateFunctionSymbol
type kann auch ein benutzerdefinierter Konstruktor sein, erkannt mit instanceof.
Andere Erweiterungen