1.webpack框架创建

# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
# 安装依赖,走你
$ cd my-project
$ npm install
$ npm run dev

在创建过程中,它会问你是否需要安装vue-router等问题,我的建议是都不要安装,因为它给你指定的vue-router目录可能部适合你的编程习惯,还有它的代码规范可能和你不同。

不过,如果你选择全部安装它给你提供的也不要紧,你可以在‘es...’中改变它的编程规范。

2.准备数据

这次所用的数据,是自己模拟的一个后台数据,需要为它配置路由



在build/dev-server.js中导入josn文件,为它配置路径

//定义数据
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: 0,
data: seller
});
}); apiRoutes.get('/goods', function (req, res) {
res.json({
errno: 0,
data: goods
});
}); apiRoutes.get('/ratings', function (req, res) {
res.json({
errno: 0,
data: ratings
});
}); app.use('/api', apiRoutes); var compiler = webpack(webpackConfig) var devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
stats: {
colors: true,
chunks: false
}
})

数据拿到了之后就开始编写网页的头部了。

3. 编写header组件

1.拿到数据

我们首先要做的,是从data.json里拿到数据,那首先要做的,就是安装vue-resource

安装之后,记得一定要在main.js中引用

import VueResource from "vue-resource";
Vue.use(VueResource);

然后在app.vue中拿数据

const ERR_OK = 0;
export default {
data() {
return {
seller: {}
};
},
created() {
this.$http.get('/api/seller').then((response) => {
response = response.body;
if(response.errno === ERR_OK) {
this.seller = response.data;
}
});
},
components:{
'v-header':header
}
}

在这里注意,我们把0先定义为一个常量,是为了将来我们要改变请求指令时,只需要改变常量的值就可以了。

2. header组件接收数据

我们要header组件可以接收到数据,首先要做的,就是让header组件找到数据

<v-header :seller="seller"></v-header>

然后,在header.vue里定义props接收数据

props: {
seller: {
type:Object
}
}

3.布局和引用数据

1.v-if先确定是否存在

<div v-if="seller.supports" class="support">
<span class="icon" :class="classMap[seller.supports[0].type]"></span>
<span class="text">{{seller.supports[0].description}}</span>
</div>

在编写support部分时,我先用了v-if判断,原因在与这一部分不是每个商家都有的,为了避免没有的时候报错,先用v-if判断一下,没有的话就不存在这一部分

2.classMap

因为对应的class背景不同,所以把几个class名封装成一个数组,用哪个就取哪个。

created() {
this.classMap = ['decrease','discount','special','invoice'];
}
:class="classMap[seller.supports[0].type]

3.一些重要的css样式

  1. 让图片和文字对齐,在图片里加
vertical-align: top;
  1. 让背景图按比例缩放
background-size: width height;
  1. 让图片置于底层
z-index: -1;
  1. 背景模糊
filter: blur(10px);

4.最终效果

更新中...

外卖app的header组件开发的更多相关文章

  1. 【vue】饿了么项目-header组件开发

    1.数据传递的理解 在App.vue中用到了header组件,首先注册组件 components: { 'v-header': header } 然后才能引用 <v-header :seller ...

  2. vue2.0:(十)、外卖App商品组件部分和better-scroll

    本篇中继续来给大家介绍外卖App制作中的商品组件的部分. 好,第一步,我们把商品的大致框架在goods.vue中搭建出来: menu-wrapper是左边菜单栏,foods-wrapper是右边商品栏 ...

  3. ionic3+angular4开发混合app 之自定义组件

    这里主要是记录ionic3+angular4开发混合app时自定义组件,我想自定义组件的方法和angular4应该类似,具体在纯angular4中自定义组件,暂时没有实践,个人觉得差别不大,之后实践了 ...

  4. 项目Header组件的开发注意事项

    npm install stylus --save npm install stylus-loader --save 移动端一般采用rem布局方式 Header组件里iconfont的使用和代码优化: ...

  5. weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件

    1.自定义  过滤函数 src / filters / index.js /** * 自定义 过滤函数 */ export function host (url) { if (!url) return ...

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

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

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

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

  8. wn-cli 像React组件开发一样来开发微信小程序

    项目地址:wn-cli wn-cli wn-cli 像React组件开发一样来开发微信小程序 名字由来:wn -> weapp native 取第一个字母 Install npm install ...

  9. Vue组件开发实例(详细注释)

    Vue组件开发实例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

随机推荐

  1. Android - "cause failed to find target android-14" 问题

    在导入别人的工程项目时经常会遇到各种问题,本文中的就是其中SDK不对导致的   在导入项目时已经修改了 两个build.gradle文件 错误的原因是后面中这两项没修改. compileSdkVers ...

  2. Java之多态

    一.多态 1.含义 一种类型,呈现多种状态.主要关注类多态.方法多态. 2.多态的前提:继承 使用父类引用指向子类对象: Animal a1 = new Cat(): Object a1 = new ...

  3. 实践作业1:测试管理工具实践 Day2

    1.尝试配置TestLink所需环境 安装配置php+apache+mysql时遇到一系列稀奇古怪的错误. 2.百度之后发现有可行的替代工具:Vertrigoserv(VertrigoServ是一个W ...

  4. 一个三维点类Gpoint3的实现

    1 类设计 基本功能 (1)默认构造时,自动初始化为(0,0,0): (2)支持点之间的加.减运算: (3)支持点与常量数据的加.减.乘除运算: (4)支持点之间的相等或不能判断 (5)如果把点类看作 ...

  5. 自定义spring mvc的json视图

    场景 前端(安卓,Ios,web前端)和后端进行了数据的格式规范的讨论,确定了json的数据格式: { "code":"200", "data&quo ...

  6. 用tortoiseGit管理GitHub项目代码(完整教程)

    一.为什么要写这篇博客呢,因为在一开始用tortoiseGit来管理项目的时候,在百度上找了很多教程,但是感觉说的都不是很全,有些东西以及操作没写清楚,所以想写一片比较完整用tortoiseGit管理 ...

  7. Python字符串和日期相互转换的方法

    import time,datetime # 日期转换成字符串 print time.strftime("%Y-%m-%d %X", time.localtime()) #字符串转 ...

  8. HDU 4193 Non-negative Partial Sums(想法题,单调队列)

    HDU 4193 题意:给n个数字组成的序列(n <= 10^6).求该序列的循环同构序列中,有多少个序列的随意前i项和均大于或等于0. 思路: 这题看到数据规模认为仅仅能用最多O(nlogn) ...

  9. 19_Android中图片处理原理篇,关于人脸识别站点,图片载入到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写

    1载入图片到内存 (1).数码相机照片特别是大于3m以上的,内存吃不消,会报OutOfMemoryError,若是想仅仅显示原图片的1/8,能够通过BitmapFactory.Options来实现.详 ...

  10. c++中虚多态的实现机制

    c++中虚多态的实现机制 參考博客:http://blog.csdn.net/neiloid/article/details/6934135 序言 证明vptr指针存在 无继承 单继承无覆盖 单继承有 ...