開發 | 用 7 天時間,他做了個仿麥當勞的小程序
文 | Jerry Lee
作為全棧的學習者,初學微信小程序,抱著試試做心態,一個星期內初步完成了仿「i 麥當勞」小程序的項目。
接下來,我與知曉程序(微信號 zxcx0101)就來跟大家一起回顧一下這個項目的完成過程。
為什麼選擇小程序?小程序對於新手來說,是很容易上手的。你只需要用幾天時間去熟悉小程序的構建過程和文檔,就可以做出一個比較完整的小程序。
特別是 rpx,有了它,小程序可以自動適應不同的手機屏幕,這也使得開發者的工作量大幅降低。
關注「知曉程序」公眾號,在微信後台回復「rpx」,獲取 rpx 單位詳細解讀文章。
對於用戶來說,小程序是一個不需要下載安裝即可使用的應用,而且它的背後是強大的微信,所以,如果我們能夠用自己的創造思維去看待它,你會有很大的收穫。O(∩_∩)O
開發工具- 微信 Web 開發者工具,以及開發文檔:微信開發的小程序編輯軟體,下載安裝即可使用。同時,開發文檔可以解釋小程序的 API 介面用法。
- Easy Mork:用它可以模擬小程序向後端交換數據,可以使用 JSON 格式數據。
- 阿里的矢量圖標庫:這個是個好東西,以前我總是為找不到圖標元素煩惱,現在有了它,基本上能找到需要的圖標。
功能實現1. 優惠券的顯示及頁面傳值
我們從 Easy Mock 模擬獲取到優惠券的信息,並且利用了 wx:for
這個控制屬性,綁定一個數組,將信息顯示到頁面上。
block wx:for="{{imgs}}" wx:key="" class="block" >
swiper-item >
navigator url="/pages/integraldetail/integraldetail?url={{item.url}}&description={{item.description}}&prompt={{item.prompt}}">
image src="{{item.url}}" class="side-img" />
view class="check click">查看詳情view>
navigator>
view class="exchange click" bindtap="exchangetap">立即兌換view>
swiper-item>
block>
data: {
imgs:,
modalHidden: true,
},
我們還可以注意這個信息 navigator
,綁定了跳轉頁面的屬性。
在跳轉的過程中,它可以傳遞變數。例如 ?url={{item.url}}
。在本例中,我需要傳遞圖片地址信息到下個頁面。
當然,頁面傳值並不只有這種方法,還有設置全局的數據緩存、引入事件訂閱和發布框架 onfire.js等方法。
接下來,我們需要獲取從伺服器發來的數據。我們利用 wx.request
向伺服器發起數據請求。
通過這個介面,發起的是 HTTPS 請求,並且同時只能進行 5 個網路請求。
我們從 Easy Mock 中獲取數據信息,利用 setData
改變imgs
變數的值。
var that = this;
wx.request({
url: "https://www.easy-mock.com/mock/595f3f139adc231f357b0615/McDonald/list",
method: "GET",
success: function (res) {
console.log(res);
that.setData({
imgs: res.data.image,
})
}
})
2. 星座選擇器
表單組件 picker
支持三種選擇器,通過mode
來區分,分別是普通選擇器,時間選擇器,日期選擇器,這裡我們選擇的是普通選擇器。
range
是展示列表值的數組,列表中所有的元素都在裡面聲明。mode
是設定選擇器模式。在這裡,我們將其設定為selector
。value
表示用戶當前選中的項目。bindchange
是選擇器的值改變時,所觸發的事件。
view class="userdata-name">星座view>
view class="userdata-symbol">view>
picker mode="selector" class="userdata-input" range="{{actionConItems}}" value="{{conIndex}}" bindchange="pickerConSelected">
text>{{actionConItems[conIndex]}}text>
picker>
view>
從微信端獲取的個人信息放在本地,並利用 wx.setStorageSync
緩存特定的信息。通過picker
獲取到的星座,就可以利用這個方法,放到本地。
data: {
actionConItems: ["白羊座","金牛座","雙子座","巨蟹座","獅子座","處女座","天秤座","天蠍座","射手座","摩羯座","水瓶座","雙魚座"],
conIndex: 0,
},
//星座彈出窗口 可以將數據放在本地setStorage
pickerConSelected: function (e) {
console.log("picker發送選擇改變,星座為" + e.detail.value);
wx.setStorageSync("con", e.detail.value);
this.setData({
conIndex: e.detail.value,
btnColor: "#ffc324",
});
},
關注「知曉程序」微信公眾號,在微信後台回復「源碼」,獲取本文原文地址及項目源碼地址。
我踩過的「坑」剛開始,我對文檔不熟悉,導致自己走了很多的彎路。
例如,我做星座選擇器的時候就不知道 picker
這個組件,改而使用了action-sheet
。因為action-sheet
裡面的數據不能超過 6 項,所以我在這裡卡了一段時間。
在開發小程序時候,至少需要通讀一遍文檔,知道小程序提供什麼組件和 API,避免使用了不合適的組件。
還有,微信小程序的編譯包是不能超過 2 MB 的,如果你不將自己的圖片放在伺服器,也儘可能將你的圖片壓縮一下。我開發的時候,編譯包就超過了 2 MB。
另外,由於之前不了解彈性布局 Flex,頁面總會有些瑕疵。自從用了 Flex 之後,發現它可以完美地解決我的問題,媽媽再也不會擔心我的圖片文字同時居中了。
關注「知曉程序」微信公眾號,在微信後台回復「Flex」,一篇文章帶你了解 Flex 布局。
最後,我們來看下小程序整體運行效果吧。
關注「知曉程序」公眾號,在微信後台回復「開發」,獲取小程序開發技巧精選文章。
※為什麼大家都在主動宣傳《二十二》?甚至不惜買票送人?
※用7 天時間,他做了個仿麥當勞的小程序
※Pool Break:這款超真實的撞球遊戲,不會打也能玩上癮#iOS#Android
※開愛情酒店、賣速食麵,任天堂差點破產的幾個時刻
TAG:愛范兒 |
※1個開發如何撐起一個用戶過億的小程序
※手機里必備的5個小程序,今天推薦給你,都特別實用
※小程序,下一個開發的藍海?
※你準備好了嗎?用了這款小程序,就節省204年的時間去追ta
※我們做了一個小程序
※人間真實:程序員的 60 個崩潰瞬間!
※你和新零售之間的距離,只差一個小程序
※好用到哭,推薦給你8個實用小程序
※10個小眾好用的手機程序
※我,一個自詡牛逼上天的 Node.js 和小程序開發者,今天就教「快應用」好好做人
※試用上百個小程序後,我們精挑細選了20個…
※每天一個小程序
※幾個有趣的小程序、小應用
※程序員吐槽:每天工作15個小時,次月拿到工資條,還以為看錯了
※程序員小哥每天工作15小時,月底發工資,老婆看完後默默流淚!
※當程序猿說開發完,第一次提交測試時~
※和 8 個程序員聊了一下午,集齊了這些經驗!
※別等時代拋棄你,才想起開發小程序!
※我們想開發一個網站或小程序!
※今日頭條有了一個新 CEO,還發布了小程序