Vue開源:vue-meituan - 基于Vue全家桶制作的的高仿美團APP

熊貓仙 7年前發布 | 31K 次閱讀 Vue.js Vue.js開發

美團外賣APP

項目演示地址: http://39.108.232.27:9000

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

技術棧

【前端】

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

【后端及數據庫】

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

【自動化構建及其他工具】

  • vue-cli:Vue 腳手架工具,快速初始化項目代碼
  • ESLint:代碼風格檢查工具,規范代碼書寫
  • pm2:一個帶有負載均衡功能的Node應用的進程管理器,此項目用于在阿里云服務器啟動服務

收獲

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

實現細節

主要功能:首頁、商家模塊、發現、訂單、我的

首頁

首頁數據 mock 美團移動端數據 - 接口

商家模塊

該頁面主要實現了點餐、商品評價、商家信息預覽等功能,內置購物車

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

公告浮層中使用了移動端經典的 CSS-Sticky-Footer 布局:關閉按鈕被擠下去

公告浮層設計了淡入淡出效果,并使用了針對 IOS 用戶的漸進增強效果: backdrop-filter

導航欄解決移動端1像素邊框問題,并設計了通用 mixin

下面三個部分使用嵌套子路由實現:

點餐:

  • 布局上采用嵌套 Flex 布局。
  • 滾動效果借助  better-scroll  滾動插件實現。
  • 實現了左右菜單聯動效果:右側滾動,左側對應菜單高亮,左側點擊,右側滾動到對應區域。
  • 設計了迷你購物車組件
  • 利用 css 過度動畫實現了購物車加減動態效果
  • 利用 js 鉤子實現了加入購物車飛行小球效果

評價:

  • 復用  star 、 cross-line 、 ratings-select  等組件,體會到組件化開發的便捷性

商家:

  • 借助  better-scroll  實現了橫向滾動和縱向滾動效果
  • 收藏功能使用  localstorage  本地存儲,并設計了通用 store 方案

TODO

  1. 做一個node服務端,配合mongodb,實現商品的上下架、用戶的登錄注冊等功能
  2. 豐富各個模塊的深度

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</pre>

License

The code is available under the MIT license .

項目主頁:http://www.baiduhome.net/lib/view/home/1505306729959

 

 

 本文由用戶 熊貓仙 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!