2018 年 9 月 13 日 : 新增了VUEX的引入,在store資料夾裡 並且在首頁的城市獲取,和自己選擇城市的頁面中使用了VUEX,大家可以參考mpvue中如何引入和使用vuex的
2018年9月6日 : 在首頁頂部新增搜尋以及引入高德地圖api
1.使用者同意獲取授權和使用者不同意獲取授權兩種情況
2018年9月5日 : 在商品詳情頁面新增了商品分享(轉發功能);
2018年8月30日 : 好多人反映登入無法登入,因為這個需要自己配置後臺才可以,為了可以讓大家體驗登入後的一些操作,在這裡我新增了預設使用者,大家可以體驗其他功能! 這裡可能會遇到問題:大家都是使用的這一個賬號,新增購物車,收藏還有一些收貨地址之類的可能會顯示很多人新增的,我會定期刪除線上預設使用者的這些資訊, 現在clone最新的程式碼可以體驗.
大家也可以在App.vue設定自己的預設賬戶資訊(這樣就不會和其他人衝突了) var userInfo = {"openId":"oQmbb4sNZdxaUQZ0sfYgvtOP2S7c","nickName":"何玉碩","gender":1,"language":"zh_CN","city":"Changping","province":"Beijing","country":"China","avatarUrl":"https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIbWFEIJj8IpGeHM7dGic1aTFZALjWcMm9ltWfFiaQfVRYticWBfgGfzXWMt2EkJWiaicPtftHAlWxUibxQ/132","watermark":{"timestamp":1535513485,"appid":"wx601ce71bde7b9add"
}
};
var openId = userInfo.openId;
wx.setStorageSync("userInfo", userInfo);
wx.setStorageSync("openId", openId);
複製程式碼
前言
一直打算自己寫介面,寫一個上線的小程式,資料方面總是無從下手,無意中發現一個網友爬取的網易嚴選商城的一些資料大概一共有20張左右的表,算是相當詳細了(對其中部分表的欄位和部分資料進行了修改,)平時寫專案大部分用的vue,所以直接選擇了mpvue開發,後端一開始打算用php但是學了半個月感覺需要學的東西太多,短時間裡寫不出這個線上小程式,最後決定用node來開發提供介面。
小程式原始碼地址
小程式服務端原始碼地址
喜歡的希望大家點個star鼓勵一下,謝謝大家的支援!!!!
技術站
前端:小程式、mpvue、async、await
後端:Node、koa2、mysql、knex.js運算元據庫,視覺化工具使用的Navicat
目前上線狀態
由於域名備案小程式暫時無法上線,但是小程式的服務端已經上線,介面都是訪問的線上介面,你只需要把原始碼克隆到本地,直接在微信開發者工具中,就能請求到資料,看到效果 ,備案通過後會把二維碼新增進來
小程式原始碼地址
小程式服務端原始碼地址
喜歡的希望大家點個start鼓勵一下,謝謝大家的支援!!!!
商城主要實現的功能
- 首頁、專題、分類、購物車、我的
- 小程式授權登陸獲取使用者資訊
- 首頁包含品牌製造頁、品牌製造詳情頁面、新品首發頁面、人氣推薦頁面、各分類列表
- 商品詳情頁面,包含常見問題、大家都在看商品列表、加入購物車、收藏商品、立即購買、下訂單、選擇收貨地址
- 搜尋功能,包含歷史記錄、熱門搜尋、搜尋後列表展示、模糊搜尋提示
- 商品列表部分包含綜合、價格高低進行排序
- 專題功能,包含專題詳情、專題推薦列表
- 分類,包含左邊大分類和右邊詳細分類
- 購物車,包含商品單選全選、左滑刪除商品、下訂單等功能
- 地址管理,包含新建地址和匯入微信地址,地址編輯、左滑刪除、設定預設地址
- 我的頁,包含我的收藏、地址管理、意見反饋
部分效果展示
1.首頁展示和專題頁效果
2、分類頁面,分類子頁面以及搜尋功能、搜尋列表、歷史記錄、模糊搜尋提示
3、購物車功能新增購物車,單選多選,刪除和商品收藏功能
4、地址管理
專案總結和遇到的一些問題
1.新增頁面
只要新增了頁面,必須手動執行 npm run dev 才能生效
2.created生命週期需要注意的問題
不要在vue的created生命週期裡獲取資料,只要小程式開啟,整個專案的所有頁面裡created生命週期裡的方法都會執行一遍,所以不要使用這個生命週期,一般可以寫在mounted生命週期裡,或者原生的onLoad生命週期裡
3.共用頁面或者有輸入資料的頁面需要注意的問題(例如:詳情頁,新增地址,搜尋頁)
在這些頁面都有一個共同問題,就是他會保留上次你所有的操作,例如:詳情頁面雖然會獲取新的資料,但是他會先閃一下以前的資料然後在變成新的資料,例如:搜尋頁面,當你退出後,再次進入的時候上次搜尋輸入的內容還儲存在裡邊,我們需要做的就是在頁面剛載入的時候,需要吧vue中data裡定義的初始資料都要重新初始化一遍
//載入頁面之前先初始化這些資料,這樣可以解決上邊帶來的問題 onLoad() {
this.initData();
},//定義一個方法 需要初始化的資料 initData() {
this.listData = [] this.productList = []
}複製程式碼
3.onShow方法的使用
正常mounted生命週期裡獲取資料執行一次,當你再次進入的時候不會重新請求資料,如果你需要重新請求資料,可以把獲取資料的方法寫在onShow生命週期裡邊,只要展示這個頁面就會執行裡邊的方法
onShow() {
this.getListData();
},複製程式碼
4.mpvue-loader版本的控制(鎖定版本,以免官方升級導致出現問題)
鎖定版本,原本專案開發的很好,換了太電腦同樣專案重新下載依賴結果各種報錯,在github中issue中發現,mpvue-loader進行了升級,不支援以前main.js裡寫配置小程式的app.json,鎖定版本只需要如下兩個地方,不鎖定版本,預設會下載最新版本的
//把前面的^這個符號去掉即可鎖定版本"mpvue-loader": "1.0.13","webpack-mpvue-asset-plugin": "0.0.2"
複製程式碼
5.scroll-view原生元件設定橫向滾動
<
scroll-view scroll-x="true" :scroll-left="scrollLeft" class="head">
<
div @click="changeTab(index,item.id)" :class="[nowIndex==index ?'active':'']" v-for="(item, index) in navData" :key="index">
{{item.name
}
} <
/div>
<
/scroll-view>
//對子元素設定浮動都沒用,父元素使用flex佈局也是不行的//需要如下設定//父元素.head{
white-space: nowrap;
}//子元素如下設定,這樣設定後就可以橫向滾動了.item{
display: inline-block;
}複製程式碼
6.使用mpvue-wxParse富文字編輯器外掛
如果需要使用這個外掛,那你必須使用我這個package.json還有相應的配置檔案,我對mpvue-loader等配置版本鎖定,在開發中我遇到了這個坑,預設安裝最新版本,導致解析mpvue-wxparse外掛出現錯誤效果不出來.
最後
後續還會陸續新增新的功能
小程式原始碼地址