基于Vue全家桶制作的的高仿美團(tuán)APP

鳴謝:該項(xiàng)目核心部分參考了慕課網(wǎng)精英講師ustbhuangyi的課程,其余部分高仿美團(tuán)APP構(gòu)建。

前端菜鳥項(xiàng)目,大佬們輕噴~

美團(tuán)外賣APP

?? 項(xiàng)目演示地址:http://39.108.232.27:9000

?? GitHub:https://github.com/bxm0927/vue-meituan

基于 Vue 全家桶 (2.x) 制作的美團(tuán)外賣APP ,一個(gè)媲美原生的移動(dòng)端外賣 App,項(xiàng)目完整、功能完備、UI美觀、UE一流。

技術(shù)棧

【前端】

  • Vue:構(gòu)建用戶界面的 MVVM 框架,核心是響應(yīng)的數(shù)據(jù)綁定和組系統(tǒng)件
  • vue-router:為單頁面應(yīng)用提供的路由系統(tǒng),項(xiàng)目上線前使用了路由懶加載技術(shù),來異步加載路由優(yōu)化性能
  • vuex:Vue 集中狀態(tài)管理,在多個(gè)組件共享某些狀態(tài)時(shí)非常便捷
  • vue-resource:服務(wù)端通訊,項(xiàng)目后期改用 axios
  • axios:服務(wù)端通訊。基于 Promise 的網(wǎng)絡(luò)請求插件
  • vue-lazyload:第三方圖片懶加載庫,優(yōu)化頁面加載速度
  • better-scroll:iscroll 的優(yōu)化版,使移動(dòng)端滑動(dòng)體驗(yàn)更加流暢
  • Mint UI:一套基于 Vue 2.0 的移動(dòng)端組件庫,出自餓了么前端
  • Sass(Scss):css 預(yù)編譯處理器
  • ES6:ECMAScript 新一代語法,模塊化、解構(gòu)賦值、Promise、Class 等方法非常好用
  • Moment.js:日期時(shí)間格式化插件

【后端及數(shù)據(jù)庫】

  • Node.js:利用 Express 起一個(gè)本地測試服務(wù)器
  • Express:一個(gè)自身功能極簡,完全是由路由和中間件構(gòu)成一個(gè)的WEB開發(fā)框架

【自動(dòng)化構(gòu)建及其他工具】

  • vue-cli:Vue 腳手架工具,快速初始化項(xiàng)目代碼
  • ESLint:代碼風(fēng)格檢查工具,規(guī)范代碼書寫
  • pm2:一個(gè)帶有負(fù)載均衡功能的Node應(yīng)用的進(jìn)程管理器,此項(xiàng)目用于在阿里云服務(wù)器啟動(dòng)服務(wù)

收獲

  • 對(duì) vue 的組件、指令、選項(xiàng)、模版渲染、事件綁定、計(jì)算屬性等有了一定了解
  • 了解了 vue 組件之間的交互、傳值
  • 熟悉了在 vue 項(xiàng)目中使用第三方插件(組件)
  • 熟悉了組件化、模塊化的開發(fā)思維
  • 熟悉了 vue-router 控制路由和子路由的方式
  • 熟悉項(xiàng)目開發(fā)流程:項(xiàng)目分析設(shè)計(jì) -> 項(xiàng)目環(huán)境搭建 -> 依賴安裝 -> 頁面架構(gòu)設(shè)計(jì) -> 組件開發(fā) -> 測試聯(lián)調(diào) -> 發(fā)布上線
  • 總結(jié)了一套 Vue 通用組件,可以在其它項(xiàng)目中復(fù)用的 10+ 個(gè)組件
  • 總結(jié)了一套常用的 SCSS mixin 庫
  • 總結(jié)了一套常用的 JS 工具函數(shù)庫
  • 體會(huì)到組件化、模塊化開發(fā)帶來的便捷
  • 體會(huì)到將對(duì)象封裝成類(ES6 class) 的便捷性,以及利用工廠方式初始化類實(shí)例
  • 學(xué)會(huì)利用過渡效果及動(dòng)畫效果制作良好的用戶交互體驗(yàn)

實(shí)現(xiàn)細(xì)節(jié)

主要功能:首頁、商家模塊、發(fā)現(xiàn)、訂單、我的

首頁

首頁數(shù)據(jù) mock 美團(tuán)移動(dòng)端數(shù)據(jù) - 接口

商家模塊

該頁面主要實(shí)現(xiàn)了點(diǎn)餐、商品評(píng)價(jià)、商家信息預(yù)覽等功能,內(nèi)置購物車

數(shù)據(jù)通過 axios 異步請求獲取,前期使用 mock 數(shù)據(jù),后期抓取xx數(shù)據(jù)

公告浮層中使用了移動(dòng)端經(jīng)典的 CSS-Sticky-Footer 布局:關(guān)閉按鈕被擠下去

公告浮層設(shè)計(jì)了淡入淡出效果,并使用了針對(duì) IOS 用戶的漸進(jìn)增強(qiáng)效果: backdrop-filter

導(dǎo)航欄解決移動(dòng)端1像素邊框問題,并設(shè)計(jì)了通用 mixin

下面三個(gè)部分使用嵌套子路由實(shí)現(xiàn):

點(diǎn)餐

  • 布局上采用嵌套 Flex 布局。
  • 滾動(dòng)效果借助 better-scroll 滾動(dòng)插件實(shí)現(xiàn)。
  • 實(shí)現(xiàn)了左右菜單聯(lián)動(dòng)效果:右側(cè)滾動(dòng),左側(cè)對(duì)應(yīng)菜單高亮,左側(cè)點(diǎn)擊,右側(cè)滾動(dòng)到對(duì)應(yīng)區(qū)域。
  • 設(shè)計(jì)了迷你購物車組件
  • 利用 css 過度動(dòng)畫實(shí)現(xiàn)了購物車加減動(dòng)態(tài)效果
  • 利用 js 鉤子實(shí)現(xiàn)了加入購物車飛行小球效果

評(píng)價(jià)

  • 復(fù)用 starcross-lineratings-select 等組件,體會(huì)到組件化開發(fā)的便捷性

商家

  • 借助 better-scroll 實(shí)現(xiàn)了橫向滾動(dòng)和縱向滾動(dòng)效果
  • 收藏功能使用 localstorage 本地存儲(chǔ),并設(shè)計(jì)了通用 store 方案

TODO

  1. 做一個(gè)node服務(wù)端,配合mongodb,實(shí)現(xiàn)商品的上下架、用戶的登錄注冊等功能
  2. 豐富各個(gè)模塊的深度

Build Setup

# clone the repo into your disk.
$ git clone https://github.com/bxm0927/vue-meituan.git

# install dependencies
$ npm install

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

# build for production with minification
$ npm run build

License

The code is available under the MIT license.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評(píng)論 6 546
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,814評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評(píng)論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評(píng)論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,779評(píng)論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,109評(píng)論 1 330
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評(píng)論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,287評(píng)論 0 291
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,799評(píng)論 1 338
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,515評(píng)論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,750評(píng)論 1 375
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,933評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評(píng)論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,492評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,703評(píng)論 2 380

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