テクノロジーの発展に伴い、開発の複雑さはますます高くなっており、従来の開発手法ではシステムをアプリケーション全体として構築していましたが、小さな変更や小さな機能の増加により全体のロジックが変更されることがよくありました。一本の髪の毛によって全身が影響を受けてしまいます。
コンポーネント開発により、個別の開発と保守を効果的に実現でき、それらを自由に組み合わせることができます。開発効率を大幅に向上させ、メンテナンスコストを削減します。
今日は Meituan の右側にあるフィルター ボックスのポップアップ アラートを模倣するコンポーネントを紹介します; ソース コードのダウンロード アドレスが添付されています: https://ext.dcloud.net.cn/plugin?id=13602
レンダリングは次のとおりです。
[外部リンク画像の転送に失敗しました。ソース サイトには盗難防止リンク メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-dCgLNhgW-1689509203340)(https://p3-juejin.bytaimg.com/) tos-cn-i-k3u1fbpfcp /80811c30cb684ed0bbedf7dca0c3337e~tplv-k3u1fbpfcp-zoom-1.image)]
実装コードは以下の通り
cc-rightポップアップ
説明書
<!-- pop-show:是否显示弹框 color:主题色 classList:分类数组 @sureClick:筛选确认 @hideClick:隐藏事件 -->
<cc-rightPopup :pop-show="popShow" :colors="colors" :classList="classList" @sureClick="sureClick"
@hideClick="hideright"></cc-rightPopup>
// 隐藏处理
hideright() {
this.popShow = false;
},
// 筛选确认
sureClick(paramDict, selArr) {
this.popShow = false;
uni.showModal({
title: '筛选数据',
content: '筛选价格数据 = ' + JSON.stringify(paramDict) + ' 筛选按钮数据= ' + JSON.stringify(selArr)
})
}
HTMLコード実装部分
<template>
<view class="content">
<button style="margin: 60px 90px;" @click="showPopClick">点击弹框</button>
<!-- pop-show:是否显示弹框 color:主题色 classList:分类数组 @sureClick:筛选确认 @hideClick:隐藏事件 -->
<cc-rightPopup :pop-show="popShow" :colors="colors" :classList="classList" @sureClick="sureClick"
@hideClick="hideright"></cc-rightPopup>
</view>
</template>
<script>
export default {
data() {
return {
colors: '#fa436a',
popShow: false,
classList: [{
name: '营业事件',
id: 1,
child: [{
name: '0-5时',
id: 2
}, {
name: '5-10时',
id: 3
}, {
name: '10-14时',
id: 2
}, {
name: '14-18时',
id: 3
}, {
name: '18-22时',
id: 2
}, {
name: '22-24时',
id: 3
}]
}, {
name: '用餐人数',
id: 2,
child: [{
name: '单人餐',
id: 1
}, {
name: '双人餐',
id: 2
}, {
name: '3-4人餐',
id: 2
},
{
name: '5-10人餐',
id: 2
}
]
}],
}
},
methods: {
showPopClick() {
this.popShow = true;
},
hideright() {
this.popShow = false;
},
sureClick(paramDict, selArr) {
this.popShow = false;
uni.showModal({
title: '筛选数据',
content: '筛选价格数据 = ' + JSON.stringify(paramDict) + ' 筛选按钮数据= ' + JSON.stringify(selArr)
})
}
}
}
</script>
<style>
page {
background-color: #f2f2f2;
margin-bottom: 50px;
}
</style>