国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

VueJS組件之間通過props交互及驗證的方式

2019-11-19 15:34:11
字體:
來源:轉載
供稿:網友

props 是父組件用來傳遞數據的一個自定義屬性。父組件的數據需要通過 props 把數據傳給子組件,子組件需要顯式地用 props 選項聲明 "prop"。

父組件通過props將數據傳遞給子組件

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><div id="app">  <child message="hello world!">props傳遞給子組件</child></div><script>// Vue.component('child', { // 聲明 props props: ['message'], // 同樣也可以在 vm 實例中像 “this.message” 這樣使用 template: '<h1>{{ message }}</h1>'})// 創建根實例new Vue({ el: '#app'})</script></body></html>

效果如圖:

動態 props組建數據傳遞

類似于用 v-bind 綁定 HTML 特性到一個表達式,也可以用 v-bind 動態綁定 props 的值到父組件的數據中。每當父組件的數據變化時,該變化也會傳導給子組件:

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><div id="app">  <div>   <input v-model="parentMsg">   <br>   <child v-bind:message="parentMsg"></child>  </div></div><script>// 注冊Vue.component('child', { // 聲明 props props: ['message'], // 同樣也可以在 vm 實例中像 “this.message” 這樣使用 template: '<span>{{ message }}</span>'})// 創建根實例new Vue({ el: '#app', data: {  parentMsg: '父組件內容' }})</script></body></html>

效果如圖:

 v-bind 指令將 todo 傳到每一個重復的組件中

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><div id="app">  <ol>  <todo-item v-for="item in sites" v-bind:todo="item"></todo-item>   </ol></div><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>

效果如下:

注意: props 是單向綁定的:當父組件的屬性變化時,將傳導給子組件,但是不會反過來。 

組件為 props 指定驗證要求

props 是一個對象而不是字符串數組時,它包含驗證要求:

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   }  } }})

type 可以是下面原生構造器:

  • String
  • Number
  • Boolean
  • Function
  • Object
  • Array

type 也可以是一個自定義構造器,使用 instanceof 檢測。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽中县| 顺义区| 和顺县| 琼结县| 漠河县| 襄汾县| 左权县| 万荣县| 麟游县| 瑞丽市| 扶风县| 泉州市| 行唐县| 剑阁县| 泉州市| 遂宁市| 深泽县| 嵊州市| 富顺县| 饶平县| 五大连池市| 乐东| 含山县| 白银市| 古田县| 嵊州市| 汾西县| 卢湾区| 霸州市| 牙克石市| 瓦房店市| 泰宁县| 漠河县| 台中市| 酒泉市| 枣阳市| 汉沽区| 揭西县| 秦皇岛市| 贵港市| 阜康市|