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]


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();使用較多;

