知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
微信小程序基礎(chǔ)開(kāi)發(fā)(六)----自定義組件
發(fā)表時(shí)間:2021-1-4
發(fā)布人:葵宇科技
瀏覽次數(shù):84
(一)簡(jiǎn)單使用組件的三個(gè)步驟
1.創(chuàng)建自定義組件
類似于頁(yè)面,一個(gè)自定義組件由json
wxml
wxss
js
4個(gè)文件組成
2.聲明自定義的組件
在所需要用到組件的頁(yè)面的json
文件中進(jìn)行聲明
{
"usingComponents": {
"Tabs":"../../components/Tabs/Tabs"
}
}
3.使用組件
在頁(yè)面中當(dāng)作普通標(biāo)簽使用即可
(二)組件的樣式優(yōu)化與標(biāo)題激活選中
//tabs.wxml
<view class="tabs">
<view class="tabs_tittle">
<view
wx:for="{{tabs}}"
wx:key="id"
class="title_item {{item.isActive?'active':''}}"
>
{{item.name}}
</view>
</view>
<view class="tabs_content">內(nèi)容</view>
</view>
Component({
/**
* 組件的屬性列表
*/
properties: {
},
/**
* 組件的初始數(shù)據(jù)
*/
data: {
tabs:[
{
id:0,
name:"首頁(yè)",
isActive:true
},
{
id:1,
name:"原創(chuàng)",
isActive:false
},
{
id:2,
name:"分類",
isActive:false
},
{
id:3,
name:"關(guān)于",
isActive:false
},
]
},
/**
* 組件的方法列表
*/
methods: {
}
})
標(biāo)題激活選中
<view class="tabs">
<view class="tabs_tittle">
<view
wx:for="{{tabs}}"
wx:key="id"
class="title_item {{item.isActive?'active':''}}"
bindtap="handleItemTap"
data-index="{{index}}"
>
{{item.name}}
</view>
</view>
<view class="tabs_content">內(nèi)容</view>
</view>
//tabs.js
methods: {
handleItemTap(e) {
/*
1、綁定點(diǎn)擊事件 在methods中綁定
2、獲取被點(diǎn)擊的索引
3、獲取原數(shù)組
4、對(duì)數(shù)組循環(huán)
*/
//獲取索引
const { index } = e.currentTarget.dataset;
//獲取data中的數(shù)組
//等價(jià)于let tabs=this.data.tabs;
let { tabs } = this.data;
//循環(huán)數(shù)組
tabs.forEach((v, i) => i === index ? v.isActive = true : v.isActive = false);
this.setData({
tabs
})
}
}
(三)父向子傳遞數(shù)據(jù)
父組件的wxml
<!--
demo.wxml
父組件頁(yè)面向子組件傳遞數(shù)據(jù)是通過(guò)標(biāo)簽屬性的方式
1、在子組件進(jìn)行接收
2、把這個(gè)數(shù)據(jù)當(dāng)成data中的數(shù)據(jù)直接使用
-->
<Tabs aaa="123"></Tabs>
子組件的js
//Tabs.js
// 里面存放的是要從父組件接收的數(shù)據(jù)
properties: {
// 要接收的數(shù)據(jù)的名稱
aaa:{
// type 要接收的數(shù)據(jù)的類型
type:String,
// value 默認(rèn)值
value:""
}
},
子組件的wxml
<view>
{{aaa}}
</view>
(四)子向父?jìng)鬟f數(shù)據(jù)
觸發(fā)父組件中的自定義事件,同時(shí)傳遞數(shù)據(jù)給父組件
this.triggerEvent{"父組件自定義事件的名稱",要傳遞的參數(shù)}
(五)slot
slot
標(biāo)簽其實(shí)就是一個(gè)占位符,插槽,當(dāng)父組件調(diào)用子組件的時(shí)候,再傳遞標(biāo)簽過(guò)來(lái),最終這些被傳遞的標(biāo)簽會(huì)替代slot
插槽的位置
<Tabs>
<block wx:if="{{tabs[0].isActive}}">0</block>
<block wx:elif="{{tabs[1].isActive}}">1</block>
<block wx:elif="{{tabs[2].isActive}}">2</block>
<block wx:elif="{{tabs[3].isActive}}">3</block>
</Tabs>
(六)組件的其它屬性
properties
:組件的對(duì)外屬性,是屬性名到屬性設(shè)置的映射表data
:組件的內(nèi)部數(shù)據(jù),和properties
一同用于組件的模板渲染observers
:組件數(shù)據(jù)字段監(jiān)聽(tīng)器,用于監(jiān)聽(tīng)properties
和data
的變化methods
:組件的方法,包括事件響應(yīng)函數(shù)和任意的自定義方法created
:組件生命周期函數(shù),在組件實(shí)例剛剛被創(chuàng)建時(shí)執(zhí)行注意此時(shí)不能調(diào)用setData
attached
:組件生命周期函數(shù),在組件實(shí)例進(jìn)入頁(yè)面節(jié)點(diǎn)樹時(shí)執(zhí)行ready
:組件生命周期函數(shù),在組件布局完成后執(zhí)行moved
:組件生命周期函數(shù),在組件實(shí)例被移動(dòng)到節(jié)點(diǎn)樹另一個(gè)位置時(shí)執(zhí)行detached
:組件生命周期函數(shù),在組件實(shí)例被從頁(yè)面節(jié)點(diǎn)樹移除時(shí)執(zhí)行
相關(guān)案例查看更多
相關(guān)閱讀
- 小程序用戶登錄
- 云南etc小程序
- 開(kāi)通微信小程序被騙
- 云南網(wǎng)站設(shè)計(jì)
- 云南網(wǎng)站建設(shè)首頁(yè)
- 網(wǎng)站建設(shè)專業(yè)品牌
- 網(wǎng)站建設(shè)開(kāi)發(fā)
- 云南小程序開(kāi)發(fā)推薦
- 高端網(wǎng)站建設(shè)公司
- 快排推廣
- 汽車回收系統(tǒng)
- 海報(bào)插件
- 小程序制作
- 安家微信小程序
- 開(kāi)發(fā)微信小程序
- 汽車報(bào)廢軟件
- 云南建設(shè)廳網(wǎng)站
- 小程序模板開(kāi)發(fā)公司
- 網(wǎng)站制作哪家好
- 汽車報(bào)廢回收管理軟件
- 大理網(wǎng)站建設(shè)公司
- 云南網(wǎng)站制作哪家好
- 云南花農(nóng)小程序
- 云南網(wǎng)站建設(shè)百度
- 網(wǎng)絡(luò)公司報(bào)價(jià)
- vue開(kāi)發(fā)小程序
- 云南軟件公司
- 迪慶小程序開(kāi)發(fā)
- 汽車報(bào)廢拆解管理系統(tǒng)
- 模版消息