Vue.js高仿饿了吗外卖APP核心知识

使用Vue.js作为项目的技术栈!这是目前最火的MVVM框架(之一),轻量、简洁、高效、数据驱动、组件化的优点,被大家称为“简单却不失优雅,小巧而不乏大匠”!

开发此项目需要的前置知识:
HTML CSS JavaScript 还需要es6(目前很重要)

认识一下MVVM框架

MVVM框架的提出:
1.针对具有复杂交互逻辑的前端应用
2.提供基础的架构抽象
3.通过Ajax数据持久化,保证前端用户体验
<好处多多……>

Vue.js包含两部分:数据驱动 + 组件化


数据响应原理:
数据(model)改变驱动视图(view)自动更新

组件设计原则

页面上每个独立的可视/可交互区域视为一个组件
每个组件对应一个工程目录,组件所需要的各种资源在这个目录下就近维护
页面不过是组件的容器,组件可以嵌套自由组合形成完整的页面

项目技术架构

  • vue-cli(脚手架工具)
  • vue
  • vue-resource
  • vue-router(路由)
  • vue-infinite-scorll
  • stylus
  • webpack(打包工具)

介绍Vue-cli:
Vue-cli是Vue的脚手架工具。(即:帮助我们写好Vue.js基础代码的工具)

在此要先重点提一下webpack打包工具:
一些很好的前端框架(像angularjs,React,Vue)可以帮我们如何合理的组织代码,保持代码的可维护性和扩展性。这在开发阶段是很有用的,可是要把应用发布到线上的时候,需要把代码进行合并压缩,以减小代码体积,和文件数量,人为的对代码进行丑化。于是就有了grunt,gulp,webpack等前端工程化打包工具。

下面开始进入主题,主要讲项目:

第一章:项目实战-准备工作


一共需要这六张图上的功能(主页面区、细节区、评论区、商家详情页、购物车区、商家介绍)


图标字体的制作
icon- 开头的图标(如图所示)

如果我们需要的图没有那么我们就需要自己制作:
首先进入网页https://icomoon.io/
然后点击右上角的“IcoMoon APP”按钮 , 进入新页面我们就可以看到上图中给出的那些免费图标,

而这里我们选择导入自己的SVG图来生成ico-的图标,点击新页面左上角的“Inport ICONS”

选择自己将要导入的SVG图标,上传。然后点击你上传的图片(黄色框),点击下面Generate Font就可以生成我们所需要的小图标了,这里的每一个图标都有各自的HTML和CSS代码标识,点击download下载即可


具体细节就看下载下来的文件中readme即可!
mock数据(模拟后台数据)
现在基本上都是前后端分离,前端是前端工程师,后端属于后端工程师,但是前后端交互是个必不可少的环节,一般用Ajax进行交互。还需要一些实验数据来支撑,就需要模拟数据。(此处所用数据是从别人网站上抓包来的数据)

这里真的把我坑的好惨啊
主要是现在使用的Vue是2.0以上的版本,然后视频是2016年的教学视频,版本是0.7.13。vue开发请求本地数据的配置,早期的vue-cli在bulid目录下面有dev-server.js和dev-client.js两文件,请求本地数据在dev-server.js里面配置,最新的脚手架里面已经去掉了这两个文件,改用webpack.dev.conf.js代替。所以在webpack.dev.conf.js里面配置;
在const portfinder = require(‘portfinder’)下面加入:

const express = require('express')
const app = express()
var appData = require('../data.json')
var seller = appData.seller
var goods = appData.goods
var ratings = appData.ratings
var apiRoutes = express.Router()
app.use('/api', apiRoutes)

另外,在devServer下面加入

before(app) {
app.get('/api/seller', (req, res) => {
res.json({
errno: 0,
data: seller
})
}),
app.get('/api/goods', (req, res) => {
res.json({
errno: 0,
data: goods
})
}),
app.get('/api/ratings', (req, res) => {
res.json({
errno: 0,
data: ratings
})
})
},

其他的一些配置问题,就自己百度,主要是插件版本问题,造成了很多困扰。一定要耐心、耐心、耐心……

第二章:项目实战-页面骨架开发

1.插件拆分问题
这里使用CSS3中的Flex布局来实现“商品”、“评价”、“商家”三列布局,Flex(弹性布局盒模型)方便,快捷,效果好。
最终生成的页面效果如图:

2、vue-router
这里我们需要学会使用vue-router开发单页应用。
还是那个问题:由于版本问题,各种设置可能会搞到你崩溃,不要着急找‘度娘’,肯定能解决,各方面的设置,从style的设置,ESLint+es6出现的各种标准问题,后续的class active 激活状态,以及选择器等等……

3、1像素border的实现
这里我只是用最基础的css设置实现了:

border-bottom:  1px solid rgba(7,17,27,0.1);

但是看上去不太像1像素,视频中用伪类实现的方法,并实现兼容性缩放,我没有实现。

第三章:实战项目 - header组件开发

第四章:实战项目 - goods商品列表页开发

第五章:实战项目 - food商品详情页实现

第六章:实战项目 - ratings评价列表页实现

第七章:实战项目 - seller商家详情页实现

后续边学习边更新……

项目:Vue.js高仿饿了吗外卖APP(一)相关推荐

  1. Vue.js高仿饿了么外卖App学习记录

    (给达达前端加星标,提升前端技能) 开发一款vue.js开发一款app,使用vue.js是一款高效的mvvm框架,它轻量,高效,组件化,数据驱动等功能便于开发.使用vue.js开发移动端app,学会使 ...

  2. Vue.js 高仿饿了么外卖APP

    第1章 课程简介 介绍课程的学习目标和学习内容. 1-1 课程简介 1-2 课程安排 第2章 Vuejs介绍 从前端开发趋势分析开始,引入 MVVM 开发框架和 Vue.js,接着对比流行框架Angu ...

  3. 项目:Vue.js高仿饿了吗外卖APP(二)

    [vue]饿了吗项目 – goods商品列表开发 (PS:结合自己这几天看的,以及前人给出的经验,借鉴他人的博客,总结出下面的内容) 1.flex 属性是 flex-grow.flex-shrink ...

  4. 【慕课网实战课程笔记】Vue.js高仿饿了么外卖App

    写在前面:该课程为慕课网付费课程,笔记内容代码居多.内容简略,仅供自己日后翻阅.如有疑问或者不妥,欢迎提出指正,我看到了会回复,谢谢! 第1章:课程简介 第2章:Vuejs介绍 Ctrl+Alt+l ...

  5. vue结合饿了么_Vue.js 高仿饿了么外卖app 全套_IT教程网

    资源名称:Vue.js  高仿饿了么外卖app  全套 资源目录: vue仿饿了么视频全套 全套 资源 │ files.txt │ project.zip │ resource.zip │ ├─第01 ...

  6. vue.js高仿饿了吗实现tips

    @[TOC]vue.js高仿饿了吗实现tips 高仿饿了吗–tip1 动态评星 目标:根据商家的星级生成指定的五行样式 注意点 无论星级多少,星星的个数都是五颗,所以利用v-for循环生成 利用内联标 ...

  7. vue + vue-router + vue-resource + es6 + stylus + webpack 高仿饿了么外卖App商家详情

    VUE高仿饿了么app 本项目github地址:https://github.com/motysla/eleme.git VUE 搭建简介 刚学习了VUE高仿饿了么app课,记录课的要点,巩固知识. ...

  8. 【笔记-vue】《imooc-vue.js高仿饿了么》、《imooc-vue 音乐app》、《imooc-vue.js源码全方位解析》

    20170709 - 20171128:<imooc-vue.js高仿饿了么> 一.第一章 课程简介 1-1课程简介 1.需求分析-脚手架工具-数据mock-架构设计-代码编写-自测-编译 ...

  9. 基于SpringBoot的仿饿了吗外卖APP设计与实现

    一.需求 本App主要实现了用户的登录,商品的浏览,购物车查询等功能,如下表所示 二.主体框架 2.1 整体框架 2.2 数据的流向 数据类型 数据流向 交易商品信息 数据库->客户 商品类别信 ...

最新文章

  1. 智能车百度赛道培训第一弹-基础篇
  2. ClassNotFoundException: org.apache.catalina.loader.DevLoader 自己摸索,丰衣足食
  3. SD销售订单输入成本中心
  4. 微软亚洲研究院谭旭:AI音乐,技术与艺术的碰撞
  5. android 本地ip获取,【android】 获取本地ip方法
  6. mysql统计每个科目平均成绩_No.03 数据库经典面试之如何取出每科成绩的前三名...
  7. Maven Java EE Configuration Problem 的完美解决办法
  8. 天猫整站(简易版)SSM(十四)需要登录才能使用的功能
  9. Win10安装Deepin双系统找不到启动项
  10. java计算机毕业设计物流站环境监测系统源码+系统+数据库+lw文档+mybatis+运行部署
  11. 《松本行弘的程序世界》浅读笔记
  12. postman 上传文件
  13. 活字印刷引入简单工厂模式
  14. 机器学习(Machine learning: a probabilistic perspective) 第三章阅读笔记
  15. Flutter实现App功能引导页
  16. 对抗攻击方法及论文总结
  17. 激光SLAM从理论到实践学习——第四节(激光SLAM的前端配准方法)
  18. H3CSE路由-路由过滤
  19. M.2的SATA和M.2的NVME协议的区别
  20. wps 珠海_专访 WPS 产品专家 SiC:一款 32 岁的软件,如何对抗时间?

热门文章

  1. 点云中的Minkowski卷积
  2. Minkowski sum
  3. 基于CNN的四位数字验证码识别
  4. 多点触控液晶三维电子沙盘 实景三维电子沙盘
  5. axure 怎么看距离_雪花有上限还拼距离全新滑雪活动你怎么看
  6. 基于Python的某小区停车数据分析
  7. Agile VS PMP -- Part 3 About Quality
  8. 被 YY语音 黄马 封了 IP和ID 怎么办? 三分钟就可以解决了
  9. 基于微信小程序的线上课堂系统
  10. 现代化温室大棚是否可以满足铁皮石斛种植条件?