5 微信小程序組件化開發(fā)

1、組件的基本認知:

(1).所有可復(fù)用的都可稱之為組件,例如封裝的js、css等;->?開發(fā)中組件更多指的是“html/css/js”都有的可復(fù)用文件;

(2).微信小程序中使用的標簽都是組件 ->?其包含原生組件 ->?原生組件有很多使用限制,例如綁定事件處理函數(shù)時只能使用bindtap;(不能使用catch以及bind:tap,不能有冒號);

[1].原生組件(客戶端創(chuàng)建):camera、canvas、input(僅在focus時表現(xiàn)為原生組件)、live-player、live-pusher、map、textarea、video;

[2].原生組件使用限制:

2、自定義組件 ->?創(chuàng)建components文件夾(存放所有組件) ->?創(chuàng)建組件 ->?使用組件的頁面中引入組件使用即可;->組件之間也可相互調(diào)用? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [命名規(guī)范:pages文件夾下的index文件中命名的系列文件index.wxml / index.wxss /index.js/ index.wxs ,必須同名,但不是必須為index,?可以選用其它名字,建議使用index,語義化更好;components文件夾下存放所有的組件,不同組件下的文件命名最好都使用cmp,語義化更好;]

3、自定義組件cmp.js介紹 ->?其使用Component構(gòu)造器,配置項中常見有三個參數(shù) (可寫多個參數(shù))? ->data與properties屬性中的數(shù)據(jù)都可進行數(shù)據(jù)綁定,data側(cè)重原始數(shù)據(jù),properties側(cè)重屬性接口,調(diào)用組件的頁面中可進行傳值;(兩者最終指向的是同一個數(shù)據(jù)集合,所以都可進行數(shù)據(jù)綁定,若是出現(xiàn)同名的數(shù)據(jù),properties屬性中的數(shù)據(jù)權(quán)重大于data中的數(shù)據(jù)) ->this.data.xxx; this.properties.xx兩者都可取到對方的值(可理解其取到的是大集合中的值),賦值采取的是this.setData({});

4、組件中的behaviors的使用 ->多個組件會存在相同的代碼,可使用behaviors抽離共同的代碼,實現(xiàn)組件間代碼共享;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [其使用Behavior()構(gòu)造器定義,包含一組屬性、數(shù)據(jù)、生命周期函數(shù)和方法;組件引用它時,它的屬性、數(shù)據(jù)和方法會被合并到組件中,生命周期函數(shù)也會在對應(yīng)時機被調(diào)用;每個組件可引用多個behavior,behavior也可引用其它behavior]

behaviors文件夾建議放到components文件夾下

5、自定義組件的樣式 ->?開發(fā)中直接使用class選擇器即可(class選擇器不會出現(xiàn)問題,其它有bug)

6、自定義組件的通信 ->自定義組件不能綁定bindtap等小程序提供的事件,其只能綁定自定義事件;

(1).父組件/頁面向子組件傳值:利用properties屬性(留有接口);

(2).子組件向父組件/頁面?zhèn)髦?,使用triggerEvent();方法即可 ; ->項目中的nav組件

子組件觸發(fā)事件后執(zhí)行:this.triggerEvent('nav',{index:index},{});//參數(shù):事件名稱、傳遞的數(shù)據(jù);

頁面中使用該組件,綁定nav事件之后,利用事件對象e便可取到傳遞的數(shù)據(jù): e.detail.index

7、組件slot插槽 ->組件中設(shè)置<slot></slot>,默認只能使用一個slot,若需要使用多個slot時,可在組件js文件中設(shè)置multipleSlots: true;多個slot使用name屬性來區(qū)分; ->?頁面中使用組件<xxcmp/>單標簽,使用slot插槽,需使用雙標簽<xxcmp></xxcmp>; ->項目中tagList組件

8、組件的生命周期 ->created(); attached();使用較多;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.小程序起步 (1)點擊https://mp.weixin.qq.com/wxopen/waregister?a...
    GXW_Lyon閱讀 3,611評論 0 0
  • 因新工作主要負責(zé)微信小程序這一塊,最近的重心就移到這一塊,該博客是對微信小程序整體的整理歸納以及標明一些細節(jié)點,初...
    majun00閱讀 7,639評論 0 9
  • 3月22日,廣西無界慈愛基金會攜手南寧大容機電公司在馬山縣加方鄉(xiāng)龍崗村舉行精準扶貧送彩電活動,基金會工作人員協(xié)同愛...
    銀時空的貓閱讀 549評論 0 3
  • 一 我把竹條彎成一個圈插進長長的竹竿里, 竹圈纏滿了蜘蛛網(wǎng), 我頂著烈日去馬路上網(wǎng)蜻蜓,塵土飛揚。 現(xiàn)在,我一個人...
    婆婆納的婆言婆語閱讀 471評論 0 1
  • 儀式感,是我最近才學(xué)到的一個詞。 有儀式感才會有生活的感覺。 于是我開始嘗試,在淘寶上買我最愛喝的茶葉,雖然價格不...
    若愚123閱讀 484評論 0 0

友情鏈接更多精彩內(nèi)容