微信小程式 元件化開發

2021-10-08 21:00:30 字數 3991 閱讀 6648

7.slot 插槽的使用

8.component構造器

類似於頁面,自定義元件由json,wxml,wxss,js四個檔案

在wxml檔案中編寫屬於元件自己的模板

在wxss中編寫屬於元件的相關樣式

在js檔案中定義資料結構和相關邏輯

以home頁面為例:

1.先在home.json中進行註冊

"usingcomponents": 

//註冊形式: 標籤名:元件的路徑

//路徑可以是相對路徑,也可以是絕對路徑

2.在home.wxml檔案中使用註冊的標籤名進行使用

>

my-cpn

>

/>

自定義元件中json檔案的內容不能隨意修改,只有,component為true,這個元件才是自定義元件

}

(1)元件內樣式對外部影響

(2)外部樣式對元件內樣式的影響

(3)結論

(4) 如何讓class可以相互影響

在元件的js檔案中的component物件中傳入options屬性,改變該屬性中styleisolation的對應取值

三個取值:

//預設isolated,隔離的

options:

頁面向元件中傳入:資料(properties)、樣式(externalclass)、標籤(slot);

元件向頁面傳入自定義事件

第一種方式的步驟:

class

="title"

>

}view

>

properties:

,

title

="哈哈哈"

/>

title

="呵呵呵"

/>

title

="嘿嘿嘿"

/>

第一種方式的缺點:沒有預設值,頁面當不傳值時,將不會顯示

優化:在定義屬性時寫成物件形式

title:

}

步驟:

(1)在需要頁面傳遞樣式的地方新增類名(元件wxml檔案)

class

="title titleclass"

>

}view

>

(2)在js檔案的 externalclasses 屬性中的列表中新增該類名,此時將該類名傳遞給了呼叫該元件的頁面;

externalclasses:

['titleclass'

]

(3)在使用該元件時將傳遞過來的類名重新賦值乙個類名

title

="哈哈哈"

titleclass

="red"

/>

title

="呵呵呵"

titleclass

="green"

/>

title

="嘿嘿嘿"

titleclass

="blue"

/>

(4)使用新的類名可以在頁面的wxss檔案中單獨給元件定義樣式

.red

.green

.blue

步驟:

(1) 在wxml中定義該事件名

(2) 在js檔案中定義該事件的函式,並使用函式將該事件傳遞出去

methods:,)

//increment為傳遞出去的事件名稱, 第二個引數是一些其他資料,在event事件中可以去個這些其他資料

}}

(3)在使用元件的頁面進行監聽,然後重新定義事件

>

當前計數counter: }view

>

bind:increment

="handleincrement"

/>

handleincrement

(event))}

,

在元件的js檔案中向外暴露乙個方法

methods:)}

}

通過id或者類名獲取當前元件物件,然後後根據元件的方法對元件內的資料進行修改

const my_select =

this

.selectcomponent

('#select-id'

) my_select.

incrementcounter(1

)

使用插槽的目的:使元件更具擴充套件性

使用步驟及注意事項:

//元件的wxml

>

我是mslot元件的開始view

>

class

="slot1"

>

name

="slot1"

/>

view

>

class

="slot2"

>

name

="slot2"

/>

view

>

class

="slot3"

>

name

="slot3"

/>

view

>

>

我是mslot元件的結尾view

>

options:

>

slot

="slot2"

>

按鈕button

>

slot

="slot1"

>

slider

>

slot

="slot3"

>

哈哈哈text

>

my-mslot

>

component中可以寫那些東西,具體有什麼作用

// components/my-cpn/my-cpn.js

component(}

,/**

* 元件的初始資料

*///定義元件內部的初始化資料

data:

,/**

* 元件的方法列表

*///用於定義元件內部的函式

methods:},

//用於定義元件的配置選項

//multipleslots: 使用多插槽時設定為true

// styleisolation: 設定樣式的隔離方式

options:

,//外界給元件傳入額外的樣式

externalclasses:[類名1,類名2],

//可以監聽屬性的改變

observers:},

//---------------元件中監聽生命週期函式----------

//1.監聽所在頁面的生命週期

pagelifetimes:

,hide()

,resize()

},//2.監聽元件本身的生命週期

lifetimes:

,attached()

,ready()

,moved()

,detached()

}})

微信小程式元件化開發

官方介紹 本次demo目錄結構 page下兩個資料夾,乙個components,用於存放元件 乙個home,為我們的主要頁面 components裡面兩個元件,乙個banner,乙個news,都是都過右鍵 新建component 生成的 第一步 配置 home.json 使頁面能使用元件 home....

微信小程式開發 元件 5

編輯器匯出內容支援帶標籤的html和純文字的text,編輯器內部採用delta格式進行儲存。通過setcontents介面設定內容時,解析插入的html可能會由於一些非法標籤導致解析錯誤,建議開發者在小程式內使用時通過 delta 進行插入。富文字元件內部引入了一些基本的樣式使得內容可以正確的展示,...

微信小程式開發 元件 3

group class radio group bindchange radiochange class radio wx for checked color pink page radiochange function e 從底部彈起的滾動選擇器。class section class secti...