国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Vue關于組件化開發知識點詳解

瀏覽:2日期:2023-01-21 11:09:11

全局組件注冊

Vue.component(’first-component’, { data: function () { return { count: 0 } }, template: ’<button @click='count++'>{{ count }}</button>’})

data 必須是一個函數

組件模板內容必須是單個根元素

組件模板內容可以是模板字符串

全局組件可以嵌套全局組件

組件命名方式

Vue.component(’first-component’, {/* .... */})// 普通標簽模板中不能使用駝峰, 只能在template中使用駝峰方式Vue.component(’firstComponent’, {/* .... */})

局部組件注冊

局部注冊的組件只能在父組件中使用 ;

var vm = new Vue({ components: { ’hello-world’: { data: function () { return { msg: ’hello world’ } }, template: ’<div>{{ msg }}</div>’ } }})

props 傳遞數據原則 : 單向數據流

組件內部通過 props 接收傳遞過來的值

Vue.component(’son-com’, {props: [’msg’, ’parentMsg’] template: ’<div>{{msg + '---' + parentMsg}}</div>’})

父組件通過屬性將值傳遞給子組件

<son-com msg='父組件的值' :parent-msg='bind綁定的父組件的值'></son-com>

props 屬性名規則

在props中使用駝峰形式, 模板中需要使用短橫線的形式 ; html 對大小寫的不敏感的 字符串中沒有這個限制

props 傳遞類型

<div id='app'> <son-com :str='pstr' :num='pnum' <!-- 注意如果不用 v-bind 則獲取不到準確的屬性值 --> :boolean='pboolean' :arr='parr' :obj='pobj' > </son-com></div>

Vue.component(’son-com’, { props: [’str’, ’num’, ’boolean’, ’arr’, ’obj’], template: ` <div> <div>{{ str }}</div> <div>{{ num }}</div> <div>{{ boolean }}</div> <ul> <li :key='index' v-for='(item, index) in arr'>{{ item }}</li> </ul> <div> <span>{{ obj.name }}</span> <span>{{ obj.age }}</span> </div> </div> `})

var vm = new Vue({ el: ’#app’, data: { pstr: ’hello Vue’, pnum: 12, pboolean: true, parr: [’apple’, ’banner’, ’orange’], pobj: {name: ’zs’, age: 22} }})

子組件向父組件傳值

子組件通過自定義事件向父組件傳值 $emit()

Vue.component(’son-com’, { template: ` <div> <button @click='$emit(’parent’)'>點擊放大父組件字體</button> 傳值從第二個參數開始 <button @click='$emit(’parent’, 10)'>點擊放大父組件字體</button> </div> `})

父組件監聽子組件事件

<div id='app'> <div>父組件</div> <son-com @parent='handle'></son-com> <!-- 接收值為固定 $event--> <son-com @parent='handle($event)'></son-com></div>

var vm = new Vue({ el: ’#app’, data: { font: 10 }, methods: { handle: function (val) { this.font += 5 this.font += val // 此時的val就是 子組件傳遞過來的值 } },})

非父子組件傳值

單獨的事件中心管理組件之間的通信

// 創建事件中心var hub = new Vue()// 在 mounted 中監聽事件hub.$on(’eventName’, fn)hub.$off(’eventName’) // 銷毀事件// 在 methods 中處理事件hub.$emit(’eventName’, param)

組件插槽

<tmp-com> <!-- 只能匹配一個標簽 --> <p slot='header'>程序錯誤</p> <div>我是沒有匹配的內容</div> <!-- 可以匹配多個標簽 --> <template slot='footer'> <p>匹配頁腳一次</p> <p>匹配頁腳兩次</p> </template></tmp-com>

Vue.component(’tmp-com’, { template: ` <div> <header> <slot name='header'></slot> </header> <div> 如果上面沒有匹配到對應的標簽就會展示默認內容 <slot></slot> </div> <footer> <slot name='footer'></slot> </footer> </div> `})

到此這篇關于Vue關于組件化開發知識點詳解的文章就介紹到這了,更多相關Vue 組件化開發內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 波多野结衣一级 | 久久精品综合国产二区 | 真人一级一级特黄高清毛片 | 黄色成人在线观看 | 91精品久久久久久久久网影视 | 国产在视频线精品视频二代 | 欧美日本一二三区 | 久久久国产99久久国产久 | 男女视频免费观看 | 91欧美在线视频 | 国产成人综合日韩精品婷婷九月 | 91香焦国产线观看看免费 | 成人综合在线视频 | 欧美成人伊人十综合色 | 日本一级特黄大一片免 | 国产亚洲人成网站观看 | 亚洲精品aaa | 久久国产精品免费 | 日韩欧美中文字幕一区二区三区 | 亚洲 欧美 国产 中文 | 欧美精品久久 | 久久中文字幕亚洲精品最新 | 欧美精品束缚一区二区三区 | 福利云| 欧美激情免费a视频 | 欧美日韩精品一区二区 | 步兵一区二区三区在线观看 | 欧美视频在线观在线看 | 亚洲乱码一二三四五六区 | 97天天干| 日本一本黄 | 欧美毛片a级毛片免费观 | 亚洲品质自拍视频网站 | 精品性久久 | 亚洲综合天堂网 | 男人av的天堂 | 91精品久久久久久久久久 | 老司机亚洲精品 | 亚洲不卡视频在线观看 | 美女黄色免费在线观看 | 久久厕所精品国产精品亚洲 |