项目的结构如下:

     

     

     

项目资源准备

准备项目的各种图片资源等等

注意:在webpack可以不用css sprite,直接用单张图片,因为它会帮忙打包。

还有SVG图片,放大之后不会影响质量,在移动端开发中,通常会把色彩单一的图片做成SVG图片。这些不是直接用,利用一些工具去把这些SVG图片去转化成一个叫图标字体的文件,就可以在CSS引用了。

图标字体制作

在项目开发前期,我们需要将设计师给的一些图片制作成字体图标

用一个叫IcoMoon的工具(https://icomoon.io/),它本身有的图标可以查看IcoMoon App,要用自定义图标的话可以在IcoMoon App里面点击Import Icons,将所有的SVG图片导入,就可以下载使用了。(里面的Get Code可以查看使用方法)。在下载之前可以点击左上角的preferences,设置一下名称:sell-icon

项目目录设计

所有代码都在src文件目录下

入口文件main.js;

整个页面的vue实例文件App.vue;

components:存放我们的组件文件,但我们不会像hello.vue一样直接放在里面,我们会多件一个子目录,像这样:

这样做是因为一个vue组件除了它的.vue文件以外,还可能包含一个图片相关资源等等。之前说过,组件一个很重要的设计原则就是就近维护,把一个组件相关资源都放在一个目录下。

还要创建一个common目录,包好一个公共的模块和资源,再在它其中添加三个子目录。

在这儿项目中,我们使用的css预处理器是stylus。

结构如下图:

并且将图标字体生成的style.css添加到stylus目录下,并改名为icon.styl,并改为stylus语法:把括号和分号去掉。

把asset目录删掉。

mock数据(模拟后台数据)

作为前端经常需要模拟后台数据,我们称之为mock。

http://blog.csdn.net/sysuzjz/article/details/50317531

mock 的真正意义在于简化测试环境。假如你现在要测试一个dao,但是你有不想构建数据库环境就可以用mock模拟数据库的返回结果。

数据来源:data.json

我们模拟的数据请求就是从这里面读取数据,接下来就来编写这些接口。

打开build目录-dev-server.js(就是我们开发的webpack打包的一个入口文件),打开之后使用express这个框架去指一个nodeserver,我们也可以用express-router来编写这些接口请求。

先拿到这些数据:

var appData = require('../data.json');
var seller = appData.seller;
var goods = appData.goods;
var ratings = appData.ratings;

如图:

在编写路由,并编写接口:

var apiRoutes = express.Router();

apiRoutes.get('/seller', function (req, res) {
res.json({
errno: ,
data: seller
});
}); apiRoutes.get('/goods', function (req, res) {
res.json({
errno: ,
data: goods
});
}); apiRoutes.get('/ratings', function (req, res) {
res.json({
errno: ,
data: ratings
});
});

要在express使用它,我们需要调用express的变量app:

app.use('/api', apiRoutes);

这样我们就可以直接通过’/goods’来获取数据了。

完整的dev-server.js:

完了之后要重新运行cnpm run dev,因为我们改的是node文件,然后http://localhost:8080/api/seller,这样就返回了数据:

当然,我们也可以利用Google的插件jsonview将数据格式化。

http://localhost:8080/api/goods

http://localhost:8080/api/ratings

这样数据也已经有了,接下来就可以来编写这个页面了。

项目vue2.0仿外卖APP(三)的更多相关文章

  1. 项目vue2.0仿外卖APP(四)

    组件拆分 先把项目搭建时生成的代码给清了吧 现在static目录下引入reset.css 接着在index.html引入,并且设置<meta> 有时候呢,为了让代码符合我们平时的编码习惯, ...

  2. 项目vue2.0仿外卖APP(一)

    最近用vue.js做一个仿饿了么外卖APP的项目,现在也把流程啊什么的暂时先整理一下在这个博客上面. 当然,这个过程会有点长,不过确实能学到很多东西. 话不多说,马上开始吧. 1.项目介绍 选用当前最 ...

  3. 项目vue2.0仿外卖APP(六)

    goods 商品列表页开发 布局编写 除了商品之外还有购物车,还有个详情页,挺复杂的. 两栏布局:左侧固定宽度,右侧自适应,还是用flex. 因为内容可能会超过手机高度,超过就隐藏.左右两侧的内容是可 ...

  4. 项目vue2.0仿外卖APP(五)

    header组件 vue-resourse应用 https://github.com/pagekit/vue-resource vue-resource是Vue.js的一款插件,它可以通过XMLHtt ...

  5. 项目vue2.0仿外卖APP(二)

    vue-cli开启vue.js项目 github地址:https://github.com/vuejs/vue-cli Vue.js开发利器vue-cli,是vue的脚手架工具. 在工地上,脚手架是工 ...

  6. 项目vue2.0仿外卖APP(七)

    ratings评价列表页实现 在ratings.vue组件里开发 首先先引入seller数据: 书写模板结构: 由于评价页又有之前写过的star.vue组件,所以又要在ratings.vue组件引入: ...

  7. Vue2.0仿饿了么webapp单页面应用

    Vue2.0仿饿了么webapp单页面应用 声明: 代码源于 黄轶老师在慕课网上的教学视频,我自己用vue2.0重写了该项目,喜欢的同学可以去支持老师的课程:http://coding.imooc.c ...

  8. vue2.0仿今日头条开源项目

    vue-toutiao 这是用 vue.js 2.0 高仿 今日头条 的移动端项目,结合了原生app的部分功能以及网页版. 前言 本人是 今日头条 的重度用户,在学习vue.js过程中,在GitHub ...

  9. vue2.0:(一)、vue的安装和项目搭建(以外卖app项目举例)

    vue系列踩坑大作战由此就要开始了,准备好了吗,和我一起踩坑,学会vue吧.同时,也欢迎大家把自己遇到的坑发出来,让更多的人学会vue,因为我深知前端学习新框架不容易,尤其是我这种半路出家的女前端.不 ...

随机推荐

  1. 使用jOrgChart插件, 异步加载生成组织架构图

    jOrgChart插件是一个用来实现组织结构图的Jquery的插件- 一.特点 1.支持拖拽修改子节点: 2.支持节点缩放展示: 3.方便修改css定义样式: 4.超轻量型: 5.兼容性好,基本支持所 ...

  2. [LeetCode] Majority Element II 求众数之二

    Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...

  3. Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术

    回到目录 两雄争霸 使用StackExchange.Redis的原因是因为它开源,免费,而对于商业化的ServiceStack.Redis,它将一步步被前者取代,开源将是一种趋势,商业化也值得被我们尊 ...

  4. Android 实时监测(监听)网络连接状态变化

    http://blog.csdn.net/mxiaoyem/article/details/50708052

  5. bootstrap-监听滚动实现头部跟随滚动

    实现案例 <body data-spy="scroll" data-target="#bs-example-navbar-collapse-1"> ...

  6. java-读取javabean类的set方法并设值

    /** * 新反射实例化模型 * @param filenamepath * @return */ public static Object newIntence(String filenamepat ...

  7. python--django项目如何设置用自己的iP地址访问项目

    一.首先需要执行>manage.py runserver 0.0.0.0:8000. 二.在setting.py里面需要添加ALLOWED_HOSTS="*".

  8. Uncaught RangeError: Maximum call stack size exceeded 超出最大调用值(个人解释)

    写了段jq后,报这个错,度娘未解,灵光一闪,找到原因,上代码: Html 结构: <a href="javascript:;" class="item-pic&qu ...

  9. c#委托----我的一点笔记

    public partial class ucBloodLabs { public delegate void ShowBloodEvent(); public ShowBloodEvent Show ...

  10. Javascript格式化json返回的时间(/Date(1482747413000)/)

    //时间处理,类似/Date(1482747413000)/的形式,得到xxx年xx月xx日 11:11:11 function ChangeDateFormat(jsondate) { jsonda ...