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

首頁(yè) > 編程 > JavaScript > 正文

Vue使用mixin分發(fā)組件的可復(fù)用功能

2019-11-19 10:55:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

vue創(chuàng)建高階組件的實(shí)現(xiàn)不夠react優(yōu)雅,但那是vue和react的設(shè)計(jì)思想導(dǎo)致的。在react中一切都是函數(shù),而在vue中,組件最終都是函數(shù),但在開(kāi)發(fā)時(shí)可以是JSON對(duì)象,而且每個(gè)vue組件要注意三個(gè)點(diǎn):props、events和slots,就是這三個(gè)導(dǎo)致vue創(chuàng)建高階組件時(shí)要傳入相應(yīng)的屬性,較react要復(fù)雜。

vue官方推薦使用mixins來(lái)完成高階組件的功能,如果對(duì)vue實(shí)現(xiàn)高階組件有興趣的話(huà)推薦看[vue實(shí)現(xiàn)高階組件][1]

下面是vue官網(wǎng)使用mixins的例子:

// 定義一個(gè)混入對(duì)象var myMixin = { created: function () {  this.hello() }, methods: {  hello: function () {   console.log('hello from mixin!')  } }}// 定義一個(gè)使用混入對(duì)象的組件var Component = Vue.extend({ mixins: [myMixin]})var component = new Component() // => "hello from mixin!"

每個(gè)vue組件有mixins屬性接收mixin數(shù)組,但由于mixin與組件,mixin與mixin之間存在屬性命名沖突的問(wèn)題,vue解決這個(gè)的方式是:

1 數(shù)據(jù)對(duì)象在內(nèi)部會(huì)進(jìn)行遞歸合并,并在發(fā)生沖突時(shí)以組件數(shù)據(jù)優(yōu)先。

2 值為對(duì)象的選項(xiàng),例如 methods、components 和 directives,將被合并為同一個(gè)對(duì)象。兩個(gè)對(duì)象鍵名沖突時(shí),取組件對(duì)象的鍵值對(duì)。

3 Vue.extend()和new Vue()創(chuàng)建的組件,解決上述的命名沖突的方案是一樣的。

總結(jié)

以上所述是小編給大家介紹的Vue使用mixin分發(fā)組件的可復(fù)用功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永胜县| 鄂伦春自治旗| 镇平县| 习水县| 鲁甸县| 崇阳县| 松江区| 柘城县| 泗洪县| 揭东县| 策勒县| 江川县| 嵊泗县| 贺州市| 巴塘县| 江津市| 滁州市| 枝江市| 杭州市| 保德县| 塘沽区| 怀柔区| 盐亭县| 镶黄旗| 来宾市| 丰都县| 安塞县| 榆树市| 遂平县| 阳江市| 景东| 巴林左旗| 新建县| 宣城市| 金寨县| 伊宁市| 鄂州市| 南漳县| 信宜市| 绥德县| 台湾省|