仿造盒馬鮮生,實現了部分功能。
html
盒馬鮮生是阿里巴巴對線下超市徹底重構的新零售業態,熱度十分git
* 用戶信息註冊
* 首頁幾個輪播和界面交互
* 分類商品管理購買
* 購物車界面交互及其操做
* 我的信息界面複製代碼
小程序是一個易上手的東西, 對於新手來講,多看官方文檔,能夠初步作出比較完整的小程序,正是由於簡單上手,功能實現簡單,小程序是愈來愈火,商業價值也愈來愈大。github
微信小程序開發和傳統的H5開發仍是有些不一樣的, 容易踩坑。
小程序是基於MVVM的的框架,合理利用數據綁定實現界面的更新是很關鍵的
開發時不要一股腦的寫寫寫,多看看文檔,你會發現你不當心原生寫了個組件。。web
進入開發平臺,註冊項目信息->在編輯器中上傳版本->在開發版本中選擇提交審覈->審覈經過->項目上線小程序
先看看個人項目目錄微信小程序
"pages": [
"pages/index/index", //主界面
"pages/person/person", //我的界面
"pages/classify/classify", //分類商品界面
"pages/class/myFruits/myFruits", //水果商店
"pages/class/myMeat/myMeat", //肉類食品商店
"pages/myCart/myCart" //購物車
],複製代碼
輪播有幾種形式, 好比常見的橫向海報圖片展現, 還有橫縱向商品列表展現,頭條信息框輪換
siwper組件很好的實現了橫向海報圖片展現,好比數組
<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
<block wx:for="{{imgUrls}}" wx:key="index">
<swiper-item>
<image src="{{item}}" class="slide-image" />
</swiper-item>
</block>
</swiper>複製代碼
然而橫向滑動須要注意些別的細節
首先要給swiper組件加上scroll-x-="true"
而後給輪播的子元素父容器設置display: inline-block; white-space: nowrap; bash
頭條信息框轉換採用上下輪換, 使用scroll-view嵌套swiper完成微信
<scroll-view scroll-y-="true" >
<swiper autoplay="{{autoplay}}" interval="{{interval1}}" duration="{{duration}}" vertical="true">
<block wx:for="{{something}}" wx:key="index">
//內容
</block>
</swiper>
</scroll-view>複製代碼
首先在index界面經過onLoad生命週期函數 ,
經過easy-moc獲取後臺數據,將必要的信息送給全局的globalData app
wx.request({
url: 'http://www.easy-mock.com/mock/5a1ffb42583969285ab22bb7/orderOnline/orderOnline',
complete: res => {
this.globalData.classifyList = res.data;
},
})複製代碼
對於數據處理,須要理清哪些是全局信息, 哪些是局部信息
好比全部商品的信息,購物車裏的商品,就得放到全局中 ,而有些好比當前界面的狀態,通常放到當前界面的Data裏面保存
而有些我的信息,好比出生年月,帳號信息 則能夠經過wx.setStorage 和wx.getStorage放入本地存儲
購物車中的操做無非是些加加減減,須要本身不斷調試,找出哪裏不合常理
經過view,button裏的bindtap等操做,實現對商品信息的修改,購物車狀態的處理
舉個例子 減小購物車中的商品的數量操做
reduceItems: function (e) {
let carts = app.globalData.carts; //獲取購物車的信息
let classifyList = app.globalData.classifyList; //獲取商品的信息
for (let key of carts) { //遍歷購物車數組
if (key.id === e.target.dataset.id) { //經過WXML中 view裏面的bind-id傳過來的參數進行查找
key.cartSelected = true;
if (key.num === 1) { //若是數量爲1還要減
key.num--;
key.cartSelected = false; //購物車不選中
key.selected = false; //商品中不選中
app.globalData.carts = carts.filter((item) => { //進行購物車中商品剔除
return item.id != e.target.dataset.id;
})
} else {
key.num--;
}
}
}
let num = 0; //實時更新購物車小計界面顯示
let totalPrice = 0;
for (let key of carts) {
if (key.cartSelected) {
num += key.num;
totalPrice += key.num * key.price;
}
}
this.setData({ //經過setData進行當前頁面Data數據管理
cart: app.globalData.carts,
cartTotal: num,
cartTotalPrice: totalPrice,
})
},複製代碼
在全局CSS樣式中 添加的CSS適配於全部的頁面,由此能夠引入weui ,作一些界面真的很方便
@import './styles/weui.wxss';複製代碼
github.com/fishman17/w… 內含詳細註釋
github : github.com/fishman17
郵箱 : 734583898@qq.com
最後 若是您喜歡這個項目的話,給個star哦 謝謝!