摘要:注此項目純屬個人瞎搞,正常下單請選擇餓了么官方客戶端。目前下單功能已經(jīng)實現(xiàn),下單功能完全采用官網(wǎng)真實數(shù)據(jù),可以控制官網(wǎng)發(fā)短信或者打電話到指定的手機號碼,下單后可以在手機中查看并且付款。
前言
vue2的發(fā)布后自己也研究了一段時間,奈何公司的技術(shù)棧是以react為主,沒有機會好好利用vue2去做一個完整的項目。雖然寫了幾個demo,但和寫一個完整的項目還是有很大差別的。于是自己想著用空余的時間寫一個項目,選擇了餓了么也只是因為經(jīng)常用,熟悉它的布局。之前的餓了么官網(wǎng)是用angular寫的,最近才發(fā)現(xiàn)原來這段時間改成了vue,看來餓了么也入了vue的坑。
既然要寫一個完整的項目,就要認真對待,所以除了付款其他所有功能都盡可能的實現(xiàn),包括登陸、注冊、個人中心、搜索、購物車、下單等等,也包括所有我能注意到的細節(jié)也都一并做出來,所以這絕對算是一個比較大的項目。
項目不使用模擬數(shù)據(jù),所有數(shù)據(jù)均使用從官網(wǎng)實時獲取的真實數(shù)據(jù),最大程度實現(xiàn)和官網(wǎng)一樣的功能,所以首先遇到的問題是跨域,我們啟動本地服務(wù)器是獲取不到官網(wǎng)數(shù)據(jù)的,這是跨域的。當然解決的方法很多,jsonp,nginx反向代理,webpack-dev-server的proxy,這里我用的是 http-proxy-middleware 原理都是一樣的。
注:此項目純屬個人瞎搞,正常下單請選擇餓了么官方客戶端。
源碼地址:https://github.com/bailicangdu/vue2-elm
效果演示demo地址(請用chrome手機模式預覽)
移動端掃描下方二維碼 技術(shù)棧vue2 + vue-rotuer2 + vuex + webpack + ES6/7 + fetch + sass + flex + svg + http-proxy-middleware反向代理
目標功能定位功能 -- 完成
選擇城市 -- 完成
搜索地址 -- 完成
展示所選地址附近商家列表 -- 完成
搜索美食,餐館 -- 完成
根據(jù)距離、銷量、評分、特色菜、配送方式等進行排序和篩選 -- 完成
餐館食品列表頁 -- 完成
購物車功能 -- 完成
店鋪評價頁面 -- 完成
單個食品詳情頁面 -- 完成
商家詳情頁 -- 完成
登陸、注冊 -- 完成
修改密碼 -- 完成
個人中心 -- 完成
發(fā)送短信、語音驗證 -- 完成
下單功能 -- 完成 ????
訂單列表 -- 完成
訂單詳情 -- 完成
帳戶信息
上傳頭像,修改用戶名
積分商城
服務(wù)中心
添加、刪除、修改收貨地址
付款(很難實現(xiàn))
項目布局|-- build // webpack配置文件 |-- config // 項目打包路徑 |-- elm // 上線項目文件,放在服務(wù)器即可正常訪問 |-- screenshots // 項目截圖 |-- src // 源碼目錄 | |-- components // 組件 | |-- common // 公共組件 | |-- buyCart.js // 購物車組件 | |-- loading.js // 頁面初始化加載數(shù)據(jù)的動畫組件 | |-- mixin.js // 組件混合(包括:指令-下拉加載更多,處理圖片地址) | |-- ratingStar.js // 評論的五顆星組件 | |-- shoplist.js // msite和shop頁面的餐館列表公共組件 | |-- footer // 底部公共組件 | |-- header // 頭部公共組件 | |-- config // 基本配置 | |-- env.js // 環(huán)境切換配置 | |-- fetch.js // 獲取數(shù)據(jù) | |-- mUtils.js // 常用的js方法 | |-- rem.js // px轉(zhuǎn)換rem | |-- images // 公共圖片 | |-- pages // 頁面組件 | |-- city // 當前城市頁 | |-- food // 食品篩選排序頁 | |-- confirmOrder // 確認訂單頁 | |--children | |--invoice // 選擇發(fā)票頁 | |--remark // 訂單備注頁 | |--payment // 付款頁 | |--userValidation // 用戶驗證頁 | |--chooseAddress // 選擇地址頁 | |--children | |--addAddress // 添加地址頁 | |--children | |--searchAddress // 搜索地址頁 | |-- find // 發(fā)現(xiàn)頁 | |-- forget // 忘記密碼,修改密碼頁 | |-- home // 首頁 | |-- login // 登陸注冊頁 | |-- msite // 商鋪列表頁 | |-- order // 訂單列表頁 | |--children | |--orderDetail // 訂單詳情頁 | |-- profile // 個人中心 | |--children | |--balance // 我的余額 | |--benefit // 我的優(yōu)惠 | |--info // 帳戶信息 | |--points // 我的積分 | |--service // 服務(wù)中心 | |-- search // 搜索頁 | ? ? ? |-- shop ? ? ? ? ? ? ? ? ? ? // 商鋪篩選頁 | |-- children | |-- foodDetail // 商鋪信息頁 | |-- shopDetail // 單個商鋪信息頁 | |-- children | |-- shopSafe // 商鋪認證信息頁 | |-- vipcard // vip辦理頁 | | |-- plugins // 引用的插件 | | |-- router // 路由配置 | | |-- service // 數(shù)據(jù)交互統(tǒng)一調(diào)配 | |-- template // 開發(fā)階段的臨時數(shù)據(jù) | |-- getData.js // 獲取數(shù)據(jù)的統(tǒng)一調(diào)配文件,對接口進行統(tǒng)一管理 | | |-- store // vuex的狀態(tài)管理 | |-- modules // store模塊 | |-- action.js // 配置actions | |-- getters.js // 配置getters | |-- index.js // 引用vuex,創(chuàng)建store | |-- mutation-types.js // 定義常量muations名 | |-- mutations.js // 配置mutations | | |-- style // 各種樣式文件 | |-- common.scss // 公共樣式文件 | ? ? ? |-- mixin.scss ? ? ? ? ? ? ? // 樣式配置文件 | | |-- App.vue // 頁面入口文件 | | |-- main.js // 程序入口文件,加載各種公共組件 | |-- .babelrc // ES6語法編譯配置 |-- .editorconfig // 代碼編寫規(guī)格 |-- .gitignore // 忽略的文件 |-- favicon.ico // 頁面左上角小圖標 |-- index.html // 入口html文件 |-- package.json // 項目及工具的依賴配置文件 |-- README.md // 說明總結(jié)
1、因為并不是elm官方,而且因為要開代理,必須在pc端打開,所以預計最多只能做到下單這一步,下單成功后可以在手機客戶端查看并付款。
2、目前下單功能已經(jīng)實現(xiàn)????,下單功能完全采用官網(wǎng)真實數(shù)據(jù),可以控制官網(wǎng)發(fā)短信或者打電話到指定的手機號碼,下單后可以在手機App中查看并且付款。
3、一般涉及到money的網(wǎng)頁邏輯都比較復雜,尤其像餓了么這樣一個開放的平臺,商家和食品種類繁多,頁面與頁面之間交互復雜,在寫到 購物車 和 下單 功能時眾多的數(shù)據(jù)和邏輯一度讓人很頭疼,又沒有設(shè)計和接口文檔,只能一步步摸索。
4、vue因其輕量級的框架在中小型項目中表現(xiàn)亮眼,在大型單頁面應(yīng)用中因為vuex的存在,表現(xiàn)依然出色,在處理復雜交互邏輯的時候,vuex的存在是不可或缺的。所以說利用 vue + vuex 完全可以去做大型的單頁面項目。
5、在項目中并沒有使用太多的插件,所有功能盡可能自己實現(xiàn),對插件依賴太多并不是一件好事。
6、項目寫到現(xiàn)在,從 登陸注冊到、首頁、搜索、商家列表、購物車、下單、訂單列表、個人中心 一個流程走完之后、不但對vue的理解更深一層,而且對以后掌控大型項目的時候也有非常多的幫助,做一個實際的項目才能對自己有很大的提升。
7、項目已完成的頁面共 22 個,最主要的購物下單功能已經(jīng)實現(xiàn),預計全部完成后總頁面數(shù)在 35 個左右。
項目截圖 城市列表頁 搜索地址頁 商鋪列表頁 商鋪篩選頁 搜索頁 餐館食品列表與購物車 餐館評論頁 餐館信息頁 登陸頁 個人中心 確認訂單頁 訂單列表頁本項目主要用于熟悉如何用 vue2 構(gòu)建一個中大型項目
vue在開發(fā)的過程中的體驗很不錯,上手快、運行效率高,餓了么從angular轉(zhuǎn)向vue不是沒有道理的,看來vue會越來越火
開發(fā)環(huán)境 macOS 10.12.3 Chrome 55
另外推薦一個 react + redux 開源項目,對react感興趣的朋友趕緊去看看。地址在這里
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81627.html
摘要:請欣賞手把手教程后端博客系統(tǒng)文章系統(tǒng)掘金本期主要是文章保存功能,涉及到草稿文章發(fā)布歷史這三個要點。一談?wù)勥B接管理后端掘金連接管理概述最近重讀了權(quán)威指南部分章節(jié),結(jié)合來對部分內(nèi)容進行印證并記錄下來。 Spring Boot干貨系列:(四)開發(fā)Web應(yīng)用之Thymeleaf篇 | 掘金技術(shù)征文 - 掘金原文地址:Spring Boot干貨系列:(四)開發(fā)Web應(yīng)用之Thymeleaf篇博客...
摘要:與面向?qū)ο缶幊塘蠓较蛑阃黄魄岸松钠脚_期前端掘金無論我們從事何種職業(yè),在職業(yè)生涯的某個階段,都或多或少會遇到所謂的平臺期。目前為止,已經(jīng)有個用戶通過認證登觀點年前端初學者的生存指南前端掘金逝者如斯夫,不舍晝夜。 你可能聽說過函數(shù)式編程(Functional programming),甚至已經(jīng)使用了一段時間。 但是,你能說清楚,它到底是什么嗎? 網(wǎng)上搜索一下,你會輕松找到好多答案...
摘要:是目前唯一一個支持同步調(diào)用的跨平臺年度上最多的個項目前端掘金年接近尾聲,在最近的幾篇文章中,會整理總結(jié)一些年度開源項目。 JS 全棧教程 - 前端 - 掘金本課程是基于阮一峰的 js 全棧教程的視頻版本,免費供大家觀看... 2016 年 10 個最佳的 CodePen 作品 - 前端 - 掘金說到 CodePen,前端開發(fā)者們肯定不會陌生。如果說 Dribbble 是設(shè)計師們聚集的圣...
摘要:前言這是我第一個基于的項目作品,目的很簡單,學以致用,將之前的前端知識積累加上目前流行的前端框架,以項目的形式展現(xiàn)出來。即將屬性和請求返回數(shù)據(jù)對象合并到空對象,然后賦值給這里加上即提供了一種可擴展的機制,倘若原來的屬性中有預定義的其他屬性。 前言 這是我第一個基于 Vue 的項目作品,目的很簡單,學以致用,將之前的前端知識積累加上目前流行的前端框架,以項目的形式展現(xiàn)出來。 源代碼:ht...
閱讀 2151·2023-05-11 16:55
閱讀 3516·2021-08-10 09:43
閱讀 2630·2019-08-30 15:44
閱讀 2452·2019-08-29 16:39
閱讀 593·2019-08-29 13:46
閱讀 2015·2019-08-29 13:29
閱讀 931·2019-08-29 13:05
閱讀 702·2019-08-26 13:51