mpvue實(shí)戰(zhàn)開發(fā)美團(tuán)外賣小程序

mpvue-meituan

mpvue-meituan 是一款使用mpvue開發(fā)的實(shí)戰(zhàn)小程序項(xiàng)目承冰,完全仿制美團(tuán)官方外賣點(diǎn)餐小程序開發(fā)而成华弓,項(xiàng)目的框架結(jié)構(gòu)完全按照企業(yè)開發(fā)架構(gòu)搭建而成。結(jié)合了原生小程序的開發(fā)能力和Vue能力困乒,使小程序開發(fā)起來更加便捷高效寂屏,項(xiàng)目使用了比較流行的Vuex框架來作為全局的狀態(tài)數(shù)據(jù)管理,使數(shù)據(jù)交互更加的便捷顶燕,結(jié)合了sass的使用讓寫Css樣式更加的得心應(yīng)手凑保。目前市面上有很多使用mpvue開發(fā)的示例Demo,但是那些示例Demo都過于簡單涌攻,沒有提供一套系統(tǒng)的框架結(jié)構(gòu)欧引,借鑒的意義不是很大。所以作者就開源了一個(gè)企業(yè)級框架開發(fā)的小程序供大家學(xué)習(xí)參考恳谎,總之是一個(gè)極力推薦學(xué)習(xí)的小程序?qū)崙?zhàn)項(xiàng)目芝此。

開源項(xiàng)目Git倉庫地址:https://github.com/guangqiang-liu/mpvue-meituan

目錄

項(xiàng)目簡介

mpvue-meituan 是一款使用mpvue開發(fā)的小程序憋肖,完全仿制美團(tuán)官方外賣小程序。目前市面上大部分的小程序開發(fā)還是使用微信原生的開發(fā)能力婚苹,原生的開發(fā)能力約束太多岸更,導(dǎo)致小程序開發(fā)成本變高。于是市面上衍生出不少小程序開發(fā)框架膊升,其中最為流行的有下面三個(gè)框架:wepy taro mpvue怎炊。這三個(gè)框架出自不同的大廠,之前不太了解的小伙伴們可以自行查閱資料廓译。本項(xiàng)目主要介紹如何使用vue來快速開發(fā)一款復(fù)雜的小程序項(xiàng)目评肆。

主要功能(20+頁面)

  • 首頁Tab
    • 首頁商家列表
    • 選擇收貨地址列表
    • 選擇城市
    • 商品搜索列表
    • 分類列表
    • 邀請好友領(lǐng)紅包
    • 添加購物車頁面
    • 食品檔案
  • 訂單Tab
    • 訂單列表
    • 提交訂單
    • 商品備注
    • 訂單詳情
    • 商品評論
  • 我的Tab
    • 我的頁面
    • 美團(tuán)紅包頁面
    • 無效紅包頁面
    • 代金券頁面
    • 無效代金券列表
    • 收貨地址列表
    • 新增收貨地址
    • 幫助反饋
    • 協(xié)議說明
  • 待補(bǔ)充

預(yù)覽效果圖

美團(tuán)買賣小程序

安裝調(diào)試

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

API數(shù)據(jù)來源

mpvue-meituan 項(xiàng)目的數(shù)據(jù)來源目前均來自美團(tuán)外賣小程序抓包數(shù)據(jù),將抓包數(shù)據(jù)存儲為本地JSON非区,然后工程訪問本地JSON數(shù)據(jù)瓜挽。由于美團(tuán)外賣小程序?qū)儆诿缊F(tuán)正式線上產(chǎn)品,故不能直接訪問其真實(shí)API征绸,使用本地JSON一樣能實(shí)現(xiàn)絕大部分需求久橙,少數(shù)需要數(shù)據(jù)交互的需求自己mock數(shù)據(jù)即可。

技術(shù)要點(diǎn)

  • 微信原生小程序開發(fā)能力
  • mpvue開發(fā)小程序能力
  • Vue開發(fā)能力
  • less管怠,sass 等css編譯器用法
  • 小程序開發(fā)基礎(chǔ)框架結(jié)構(gòu)搭建
  • 小程序網(wǎng)絡(luò)層封裝
  • Vuex全局狀態(tài)管理框架的使用
  • 小程序淆衷,vue組件化開發(fā)技巧
  • 小程序中iconFont使用技巧
  • 使用canvas繪制小程序分享海報(bào)技巧
  • 待補(bǔ)充

核心組件庫

  • mpvue
  • vuex
  • lodash
  • mpvue-wxparse
  • minapp-api-promise
  • 待補(bǔ)充

開發(fā)中遇到的坑

待補(bǔ)充

待完成功能

  • 選擇城市列表
  • 分類篩選功能
  • 購物車頁面完善優(yōu)化
  • 發(fā)表評論功能
  • 提交訂單頁面完善優(yōu)化
  • canvas繪制分享海報(bào)
  • vuex狀態(tài)管理使用
  • 常用工具類封裝
  • 組件化使用
  • sass環(huán)境的搭建及使用
  • 待補(bǔ)充

目錄結(jié)構(gòu)

.
├── App.vue
├── action
│   └── action.js
├── app.json
├── assets
│   ├── global.scss
│   └── iconfont.less
├── components
│   ├── card.vue
│   └── sep-line.vue
├── constants
│   ├── commonType.js
│   ├── errorCodeMap.js
│   ├── hostConfig.js
│   ├── pathConfig.js
│   └── responseCode.js
├── main.js
├── middlewares
│   └── index.js
├── network
│   ├── cache
│   │   └── cache.js
│   └── request
│       ├── HttpExtension.js
│       └── HttpRequest.js
├── pages
│   ├── addAddress
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── addressList
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── categoryList
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── citySearch
│   │   ├── index.vue
│   │   └── main.js
│   ├── citys
│   │   ├── index.vue
│   │   └── main.js
│   ├── commentList
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── couponList
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── dicedActivity
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── expiredCoupon
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── expiredRedPacket
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── feedback
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── home
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── index
│   │   ├── index.vue
│   │   └── main.js
│   ├── me
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── orderDetail
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── orderList
│   │   ├── data.js
│   │   ├── index.vue
│   │   └── main.js
│   ├── pickProtocol
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── protocol
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── redPacket
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── remark
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── searchList
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── selectAddress
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── share
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   ├── shoppingCart
│   │   ├── data.js
│   │   ├── index.vue
│   │   ├── main.js
│   │   └── main.json
│   └── submitOrder
│       ├── data.js
│       ├── index.vue
│       ├── main.js
│       └── main.json
├── store
│   ├── index.js
│   ├── modules
│   │   ├── shoppingCart.js
│   │   └── submitOrder.js
│   └── mutations-type.js
└── utils
    ├── arrayExtension.js
    ├── bus.js
    ├── deepClone.js
    ├── deviceInfo.js
    ├── formatTime.js
    ├── index.js
    ├── mta_analysis.js
    ├── regex.js
    ├── stringExtension.js
    ├── style.js
    ├── toast.js
    └── wxapi.js

37 directories, 117 files

總結(jié)

mpvue-meituan 項(xiàng)目是作者大約使用了2周時(shí)間開源的一款小程序項(xiàng)目,項(xiàng)目中基本涵蓋了企業(yè)開發(fā)中常用的技術(shù)要點(diǎn)排惨,非常適合想學(xué)習(xí)小程序開發(fā)的小伙伴們參考學(xué)習(xí)吭敢。相信此項(xiàng)目能給小伙伴們帶來不一樣的收獲。大家也可以加作者的mpvue小程序交流群交流學(xué)習(xí)(QQ群號:694979037)暮芭。

當(dāng)然鹿驼,如果老鐵們認(rèn)為作者的開源項(xiàng)目還不錯(cuò),也請點(diǎn)個(gè) star 支持一下 ?????? 辕宏,也衷心的歡迎小伙伴們提些寶貴的意見和建議畜晰。

開源項(xiàng)目Git倉庫地址:https://github.com/guangqiang-liu/mpvue-meituan

更多文章

  • 作者React Native開源項(xiàng)目OneM地址(按照企業(yè)開發(fā)標(biāo)準(zhǔn)搭建框架完成開發(fā)的):https://github.com/guangqiang-liu/OneM:歡迎小伙伴們 star
  • 作者簡書主頁:包含60多篇RN開發(fā)相關(guān)的技術(shù)文章http://www.reibang.com/u/023338566ca5 歡迎小伙伴們:多多關(guān)注多多點(diǎn)贊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瑞筐,一起剝皮案震驚了整個(gè)濱河市凄鼻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聚假,老刑警劉巖块蚌,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異膘格,居然都是意外死亡峭范,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門瘪贱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纱控,“玉大人辆毡,你說我怎么就攤上這事√鸷Γ” “怎么了舶掖?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長尔店。 經(jīng)常有香客問我眨攘,道長,這世上最難降的妖魔是什么嚣州? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任期犬,我火速辦了婚禮,結(jié)果婚禮上避诽,老公的妹妹穿的比我還像新娘。我一直安慰自己璃谨,他們只是感情好沙庐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著佳吞,像睡著了一般拱雏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上底扳,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天铸抑,我揣著相機(jī)與錄音,去河邊找鬼衷模。 笑死鹊汛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阱冶。 我是一名探鬼主播刁憋,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼木蹬!你這毒婦竟也來了至耻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤镊叁,失蹤者是張志新(化名)和其女友劉穎尘颓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晦譬,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疤苹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛔添。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痰催。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兜辞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夸溶,到底是詐尸還是另有隱情逸吵,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布缝裁,位于F島的核電站扫皱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捷绑。R本人自食惡果不足惜韩脑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粹污。 院中可真熱鬧段多,春花似錦、人聲如沸壮吩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸭叙。三九已至觉啊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沈贝,已是汗流浹背杠人。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宋下,地道東北人嗡善。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像学歧,于是被迫代替她去往敵國和親滤奈。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1撩满、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • 用兩張圖告訴你蜒程,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,728評論 2 59
  • 在尤大微博鋪墊著“將會引入一些關(guān)于 TypeScript 的改進(jìn)”一周之后伺帘,代號為 Level E 的 Vue.j...
    極樂叔閱讀 14,770評論 0 12
  • 說到圖片框架現(xiàn)在比較成熟的要數(shù)picasso和Glide了 但今天要說的是ImageLoader框架 昭躺,這個(gè)框架在...
    程序猿峰岑閱讀 573評論 0 0
  • 21天親密關(guān)系修習(xí)營002消失的遺憾來回踱步許久,事件有千千萬伪嫁,最感動的是什么领炫?能稱得上最的,一定是深入我的骨髓张咳。...
    芳與華閱讀 418評論 0 1