隨著小程序的普及,越來(lái)越多的開發(fā)者開始涉足小程序的開發(fā),而在小程序的開發(fā)過(guò)程中,組件的使用是不可避免的一部分。 小程序中內(nèi)置了很多常用組件,例如 button(按鈕)、view(視圖容器)、text(文本)等,但是這些內(nèi)置組件并不能滿足我們?cè)陂_發(fā)過(guò)程中的所有需求,因此,我們需要使用自定義組件來(lái)滿足更多的需求。
什么是自定義組件?
自定義組件是指除了小程序內(nèi)置的組件之外,由開發(fā)者自己定義和封裝的組件。自定義組件封裝了一些常見的UI元素,例如列表、輪播、導(dǎo)航等,以便于在小程序中進(jìn)行復(fù)用。 自定義組件可以理解為一個(gè)獨(dú)立的功能模塊,其可以被多個(gè)頁(yè)面使用,這意味著,你只需要編寫一次自定義組件,就可以在多個(gè)頁(yè)面中使用它。
如何創(chuàng)建自定義組件?
在創(chuàng)建自定義組件之前,您需要先了解一些基本的規(guī)則。
1.自定義組件的存放位置必須在 `/components` 目錄下。如圖所示:
[![D5jHlt.md.png](https://z3.ax1x.com/2021/05/04/D5jHlt.md.png)](https://imgtu.com/i/D5jHlt)
2. 自定義組件的文件名必須以 `.wxml`、`.wxss`、`.js` 和 `.json` 后綴結(jié)尾。
3. 自定義組件的 `js` 文件必須 `exports` 出一個(gè)自定義 Component。
4. 自定義組件的 `json` 配置文件中, `component` 字段的值必須以 `-` 連接單詞,且第一個(gè)字母必須小寫。
創(chuàng)建自定義組件的詳細(xì)步驟:
步驟一:首先在小程序的根目錄中創(chuàng)建一個(gè) `components` 目錄:
[![D5P84f.md.png](https://z3.ax1x.com/2021/05/04/D5P84f.md.png)](https://imgtu.com/i/D5P84f)
步驟二:在 `components` 目錄下創(chuàng)建一個(gè)名為 `my-component` 的目錄,并在該目錄中創(chuàng)建如下所示的四個(gè)文件: `my-component.wxml` 、`my-component.wxss`、 `my-component.js`和 `my-component.json`。
[![D5PuWQ.md.png](https://z3.ax1x.com/2021/05/04/D5PuWQ.md.png)](https://imgtu.com/i/D5PuWQ)
步驟三:在 `my-component.wxml` 中編寫自定義組件的模板:
```html
```
此處的模板代碼實(shí)現(xiàn)了一個(gè)包含一個(gè)文本框和一個(gè)按鈕的自定義組件。
步驟四:在 `my-component.wxss` 中編寫自定義組件的樣式:
```css
.container {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.btn {
margin-top: 20px;
width: 200px;
height: 40px;
background-color: #369;
color: #fff;
border: none;
outline: none;
box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
border-radius: 5px;
}
```
此處的樣式代碼可以實(shí)現(xiàn)居中顯示組件,并給按鈕添加了樣式。
步驟五:在 `my-component.js` 中編寫自定義組件的邏輯:
```javascript
Component({
properties: {
text: String,
},
methods: {
onButtonClick() {
console.log('Click the button!');
},
},
});
```
此處的邏輯代碼用于添加組件的屬性和方法。
步驟六:在 `my-component.json` 中編寫自定義組件的配置信息:
```json
{
"component": true,
"usingComponents": {}
}
```
此處的配置文件用于聲明當(dāng)前文件是一個(gè)自定義組件,并且可以在其他頁(yè)面中使用。
使用自定義組件
在創(chuàng)建了自定義組件之后,就可以在其他頁(yè)面中引用和使用它了。使用自定義組件的步驟如下:
步驟一:在需要使用自定義組件的 `wxml` 文件中添加 `usingComponents` 聲明:
```html
```
此處的 `name` 屬性是當(dāng)前頁(yè)面使用該組件的名稱,在該頁(yè)面的 `wxml` 中可以使用該名稱來(lái)引用該組件的 UI 和邏輯。`src` 屬性則指定自定義組件的路徑。
步驟二:在該頁(yè)面的 `wxml` 中使用剛才聲明的自定義組件:
```html
```
此處的 `text` 屬性是自定義組件的屬性,可以通過(guò) `properties` 字段在自定義組件中定義。
小結(jié)
自定義組件在小程序開發(fā)中起到非常重要的作用,可以使開發(fā)者在開發(fā)過(guò)程中更加方便、快捷地編寫出自己想要的功能和UI。 在實(shí)際的開發(fā)過(guò)程中,使用自定義組件應(yīng)遵循一些基本的規(guī)則,并可以通過(guò) `properties` 和 `methods` 字段來(lái)添加組件的屬性和方法。