前言
首先說說為什麼自己會想著寫一個小程式emmmmmm 感覺沒有為什麼 就是想寫了 我就幹了hhhhh~~~
我就粗略看了一下小程式的官方文件和mpvue的文件 然後就開擼了。
專案倉庫 歡迎start和pr哦~~
為了節省大家的寶貴時間,不廢話 直接進入正題;

技術棧
mpvue
mpvue 是一個使用 Vue.js 開發小程式的前端框架。框架基於 Vue.js......(可以看官網介紹~).
iview weapp
iview weapp 一套高質量的 微信小程式 UI 元件庫.
介面展示





大概的介面就是這樣(介面是模仿得餓了麼 我也只會模仿點頁面了hhhhh)
完成進度
- [x] 小程式的基本介面展示
- [x] 簡單的購買流程
- [x] 使用全域性狀態儲存部分資料
- [x] 使用Fly請求資料
- [x] 使用Easy-mock模擬資料
- [x] ......
- [ ] 沒有資料庫儲存真實資料
- [ ] 沒有根據多個資料渲染店和商品
- [ ] 沒有做新增地址的資料校驗等
- [ ] 訂單頁面還需要優化 摺疊顯示等
- [ ] 商家端還未開發
- [ ] ......
其實還有很多功能沒寫,因為這是剛開始上班沒事做的時候擼的(所以興趣才是最好的老師),然後現在事情比較忙就可能先放下了 如果有大佬或者有時間的大佬可以幫忙完善或者pr emmm 你直接拿走再寫也是可以的~
技術實現
技術實現過程和一些踩過的坑
介面
介面主要使用 iview weapp 元件庫 然後 有一些元件庫沒有的自己原生寫法來擼,這裡還好沒啥坑 但是在佈局上面似乎有一個1px的問題 我好像沒處理 不知道哪位大佬能發現 並且教我怎麼解決~~ 單位主要使用小程式的rpx(很好用) 只需要根據iPhone6的尺寸來使用就可以了,詳情可以看官方文件.
iview weapp input 似乎不能使用雙向資料繫結,需要自己重新擼.
底部的tabBar我是用的json來配置的 省得自己寫 方便
tabBar: {
color: '#6f6f6f',
selectedColor: '#18a3ff',
backgroundColor: '#ffffff',
borderStyle: 'black',
list: [
{
pagePath: 'pages/index/main',
iconPath: 'static/img/wm.png',
selectedIconPath: 'static/img/wms.png',
text: '外賣'
},
{
pagePath: 'pages/order/main',
iconPath: 'static/img/dd.png',
selectedIconPath: 'static/img/dds.png',
text: '訂單'
},
{
pagePath: 'pages/shopp/main',
iconPath: 'static/img/tj1.png',
selectedIconPath: 'static/img/tj1s.png',
text: '推薦'
},
{
pagePath: 'pages/user/main',
iconPath: 'static/img/user.png',
selectedIconPath: 'static/img/users.png',
text: '我的'
}
]
}
複製程式碼
這塊的話可能需要大家檢視小程式的文件來配置,其實也簡單 跟玩一樣就配置的非常好看
可能最麻煩的也是很簡單的一個坑 如何引入 其實iview weapp 官方文件寫的很清楚了 但是隻是大家不知道這麼配置而已 我來扣個程式碼演示一下.
到 GitHub 下載 iView Weapp 的程式碼,將 dist 目錄拷貝到自己的專案中。然後按照如下的方式使用元件,以 Button 為例,其它元件在對應的文件頁檢視:
1. 新增需要的元件 在頁面的 json 中配置(路徑根據自己專案位置配置)
// 新增 config json
export default {
config: {
// 這兒新增要用的小程式元件
usingComponents: {
'i-button': '../../dist/button/index'
}
}
}
複製程式碼
2. 在 wxml 中使用元件
<i-button type="primary" bind:click="handleClick">這是一個按鈕</i-button>
複製程式碼
是不是很簡單!!! 沒看明白的也可以看我的github倉庫哦~
介面這塊大概就是這麼多 也可能我寫掉了 後續想起來我會更一下的hhhh(懶)
mpvue
mpvue 新建頁面需要重新 npm run dev 這個官方文件已經明確說明過了,由於一個頁面只用重啟一次 問題不大。
小程式的請求似乎不能用axios 所以使用了Fly 來代替,至於為什麼 可以看github裡面的issues
mpvue 支援小程式和vuejs的事件 詳情可以檢視文件
然後可能最坑的就是頁面轉跳了吧... 其實官方文件有寫 目前頁面路徑最多隻能十層。 比如說我再新增地址的時候 使用了wx.navigateTo(OBJECT) 然後返回到地址的列表頁面然後繼續重複新增地址 到達一定的數量之後 就不會再跳轉,而且返回的也是之前重複的頁面 使用者體驗很不好 所以需要一個解決的辦法。文字太多可能看不懂 我來畫個圖。

<open-data type="groupName" open-gid="xxxxxx"></open-data>
<open-data type="userAvatarUrl"></open-data>
<open-data type="userGender" lang="zh_CN"></open-data>
複製程式碼
讓後放到你想顯示的地方,或者用button呼叫也可以,上面的文件都有提到過
總結
這樣一總結下來感覺自己似乎沒寫多少功能Orz!!!
但是這篇文章可能是我寫的文字最多的一篇了 如果大家覺得還不錯的話可以點個喜歡哦~~ 蟹蟹o(∩_∩)o 哈哈
所以回到標題,興趣才是最好的老師,接下面準備玩一玩electron-vue.....
寫得好累,介紹的不多 可能有遺漏 但是大部分的核心基本上都已經說了,如果大佬們想找我交流的 ,可以加我QQ github 郵箱 都ojbk的
Qq:952822399 告辭 溜~~~~
新開了個Qq群,大家也可以進來互相交流~ iD 718639024 ???