Dieser Artikel stellt hauptsächlich die Interaktion und Überprüfung zwischen VueJS-Komponenten durch Requisiten vor. Interessierte Freunde können darauf verweisen.
props ist eine benutzerdefinierte Eigenschaft, die von der übergeordneten Komponente zum Übergeben von Daten verwendet wird. Die Daten der übergeordneten Komponente müssen über Requisiten an die untergeordnete Komponente übergeben werden, und die untergeordnete Komponente muss „prop“ explizit mit der Option „props“ deklarieren.
Die übergeordnete Komponente übergibt Daten über Requisiten an die untergeordnete Komponente
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script> </head> <body> <p id="app"> <child message="hello world!">props传递给子组件</child> </p> <script> // Vue.component('child', { // 声明 props props: ['message'], // 同样也可以在 vm 实例中像 “this.message” 这样使用 template: '<h1>{{ message }}</h1>' }) // 创建根实例 new Vue({ el: '#app' }) </script> </body> </html>
Der Effekt ist wie folgt:
Dynamische Requisiten zum Aufbau der Datenübertragung
Ähnlich wie mit v-bind HTML-Funktionen an einen Ausdruck binden, können Sie auch Folgendes verwenden v-bind bindet den Wert von props dynamisch an die Daten der übergeordneten Komponente. Immer wenn sich die Daten der übergeordneten Komponente ändern, wird die Änderung auch an die untergeordnete Komponente übertragen:
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script> </head> <body> <p id="app"> <p> <input v-model="parentMsg"> <br> <child v-bind:message="parentMsg"></child> </p> </p> <script> // 注册 Vue.component('child', { // 声明 props props: ['message'], // 同样也可以在 vm 实例中像 “this.message” 这样使用 template: '<span>{{ message }}</span>' }) // 创建根实例 new Vue({ el: '#app', data: { parentMsg: '父组件内容' } }) </script> </body> </html>
Der Effekt ist wie folgt in der Abbildung gezeigt:
Die v-bind-Direktive übergibt die Aufgabe an jede wiederholte Komponente
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script> </head> <body> <p id="app"> <ol> <todo-item v-for="item in sites" v-bind:todo="item"></todo-item> </ol> </p> <script> Vue.component('todo-item', { props: ['todo'], template: '<li>{{ todo.text }}</li>' }) new Vue({ el: '#app', data: { sites: [ { text: 'Runoob' }, { text: 'Google' }, { text: 'Taobao' } ] } }) </script> </body> </html>
Der Effekt ist wie folgt:
Hinweis: Requisiten sind einseitig bindend: Wenn sich die Eigenschaften der übergeordneten Komponente ändern, werden sie geändert an die untergeordnete Komponente übertragen, aber nicht umgekehrt.
Die Komponente legt Validierungsanforderungen für Requisiten fest
Wenn props ein Objekt und kein String-Array ist, enthält es Validierungsanforderungen:
JS
Vue.component('example', { props: { // 基础类型检测 (`null` 意思是任何类型都可以) 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 value > 10 } } } })
Typ kann der folgende native Konstruktor sein:
String
Zahl
Boolean
Funktion
Objekt
Array
Typ kann auch ein benutzerdefinierter Konstruktor sein, der die Instanzerkennung verwendet.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Einführung in die Kapselung von Eingabekomponenten in Vue
Einführung in die Kommunikationspraktiken von Vue-Komponenten
Verpackungseinführung der Vue2.0 Multi-Tab-Switching-Komponente
Das obige ist der detaillierte Inhalt vonWie VueJS-Komponenten durch Requisiten interagieren und überprüfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!