组件中的data必须是一个函数。因为组件是可以服用的,如果组件中的data定义为对象的话,那么修改某一个组件的data会影响另外的组件。

前后端的交互需要通过ajax请求,通过vue-resource库可以实现ajax请求。

安装vue-resource,在amin.js中import ,通过Vue.use()全局注册,在App.vue中的cteated()钩子函数中发送ajax请求,获取数据。this相当于App的一个实例,vue-resource为组件定义了一个$http的方法。

import VueResource from 'vue-resource';

Vue.use(VueResource);

created() {
  this.$http.get('/api/seller').then((response) => {
    response = response.body;
    if (response.errno === ERR_OK) {
      this.seller = response.data;
    }
  });
}

用v-bind指令,可以从父组件传递数据给子组件,在子组件中用props接收父组件传递过来的数据。

<img>一般会指定宽高,如<img width="64" height="64" :src="seller.avatar">

<img>和<div class="content">是并列显示的,通过设置display:inline-block实现的。这两个元素之间会有间隔,这是由于中间有空白字符,要消除这些空白字符可以把父元素<div class="content-wrapper">的font-size设置为0,然后在子元素中设置各自的font-size。这个技巧在后面多次用到了。

<div>是行内元素,指定宽高是不会生效的,要设置为display:inline-block后,指定宽高才会生效。

根据不同的dpr,原则背景图片的像素,在mixin.styl文件下写bg-image($url)

bg-image($url)
  background-image: url($url + "@2x.png")
  @media (-webkit-min-device-pixel-ratio: 3),(min-device-pixel-ratio: 3)
  background-image: url($url + "@3x.png")

图片和文字并排排列时,需要将两者对齐,项目中用到的方式是设置图片在的span vertical-align:top

supports中要根据活动的内容显示图片,返回的数据时type,使用一个数组classMap将type映射到对应的图片,然后用v-bind绑定classMap。

bulletin-wrapper包含三部分,要实现公告内容的这种效果,要设置不换行,超出的内容隐藏,用省略号代替超出的文本

white-space: nowrap
overflow: hidden
text-overflow: ellipsis

要实现背景的模糊效果,可以给背景图片加一个容器,然后在外层容器使用filter。背景图片要置于底部,这可以通过设置z-index来实现。这样子设置后在.background的父元素会有阴影漏出来,需要给其父元素设置overflow:hidden

<div class="background">
  <img :src="seller.avatar" width="100%" height="100%">
</div>

.background
  position: absolute
  top: 0
  left: 0
  width: 100%
  height: 100%
  z-index: -1
  filter: blur(10px)

浮层用到了经典的CSS sticky footers布局。浮层相对于窗口fixed布局,注意overflow要设置为auto。浮层的显示和隐藏通过v-show指令来实现<div v-show="detailShow" class="detail">

sticky footers布局是指:如果页面内容不够长的时候,页脚块粘贴在视窗底部;如果内容足够长时,页脚块会被内容向下推送。这个文章里列了两种方法。http://www.w3cplus.com/css3/css-secrets/sticky-footers.html

这个项目中用了另外一种比较复杂但是兼容性更好的方法。内容区域需要加一个容器,这种方法的结构一般是这样子的

<div v-show="detailShow" class="detail">
  <div class="detail-wrapper clearfix">
    <div class="detail-main"></div>
  </div>
  <div class="detail-close"></div>
</div>

在base.styl中写class clearfix的样式

.clearfix
  display: inline-block
  &:after
    display: block
    content: "."
    height: 0
    line-height: 0
    clear: both
    visibility: hidden

设置容器detail-wrapper的大小为100%,detail-main设置一个padding-bottom,给页脚detail-wrapper留出位置,页脚detail-close设置负 margin拉到视口中。

.detail
  position: fixed
  z-index: 100
  Top: 0
  left: 0
  width: 100%
  height: 100%
  overflow: auto
  backdrop-filter: blur(10px)
  background: rgba(7, 17, 27, 0.8)

.detail-wrapper
    width: 100%
    min-height: 100%
    .detail-main
       margin-top: 64px
       padding-bottom: 64px
  .detail-close
     position: relative
    width: 32px
    height: 32px
    margin: -64px auto 0 auto
    clear: both
   font-size: 32px

生成star组件,star组件从父元素接收参数score和size,根据size增加class starType,根据score生成数组itemClasses,来确定星星的状态(on、half、off)。starType和itemClasses都在计算属性中定义。

小标题的布局。主要有两点要注意,第一标题固定布局,两边的线自适应布局;第二标题两边的间隔用padding来设置。布局用flex来实现,元素用了<div>,因为用<span>的话在有些手机上可能会存在兼容性问题。

<div class="title">
  <div class="line"></div>
  <div class="text">优惠信息</div>
  <div class="line"></div>
</div>

.title
  display: flex
  width: 80%
  margin: 28px auto 24px auto
  .line
    flex: 1
    position: relative
    top: -6px
    border-bottom: 1px solid rgba(255, 255, 255, 0.2)
  .text
    padding: 0 12px
    font-weight: 700
    font-size: 14px

在vue中动画可以通过<transition>来实现

转载于:https://www.cnblogs.com/dingzibetter/p/7259225.html

4header组件开发相关推荐

  1. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

    第四章 组合控件开发CompositeControl 大家好,今天我们来实现一个自定义的控件,之前我们已经知道了,要开发自定义的控件一般继承三个基 类:Control,WebControl,还有一个就 ...

  2. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...

  3. [文档].Altera – SOPC Builder组件开发攻略

    SOPC Builder组件即符合Avalon规范的自定义IP. 目录 SOPC Builder组件及组件编辑器 必要条件 软硬件需求 组件开发流程 设计范例:Checksum硬件加速器 分享组件 系 ...

  4. COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)

    源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...

  5. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...

  6. 《COM组件开发实践》系列文章

    COM组件开发系列链接: 1,COM组件开发实践(一) 2,COM组件开发实践(二) 3,COM组件开发实践(三) 4,COM组件开发实践(四)---From C++ to COM :Part 1 5 ...

  7. react复习总结(1)--react组件开发基础

    这次是年后第一次发文章,也有很长一段时间没有写文章了.准备继续写.总结是必须的. 最近一直在业余时间学习和复习前端相关知识点,在一个公司呆久了,使用的技术不更新,未来真的没有什么前景,特别是我们这种以 ...

  8. React Native组件开发指南

    React Native的组件开发一直处在一个比较尴尬的处境.在官方未给予相关示例与脚手架的情况下,社区中依然诞生了许许多多的React Native组件.因为缺少示例与规范,很多组件库仅含有一个in ...

  9. ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

    第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是行不 通.如果大家开发的是WinForm中的事件,之前的定义可能没有什 ...

最新文章

  1. pandas读取多个文件内容为dataframe、并合并为一个dataframe、pandas创建仅有列标签而内容为空的dataframe
  2. R语言使用latticeExtra包可视化双Y轴线图实战(Dual Y axis):单y轴线图、双y轴图线图、双y轴图线图(添加图例)
  3. IAR FOR ARM 各版本号,须要的大家能够收藏了
  4. 从输入url到显示网页,后台发生了什么?
  5. python 连接mysql 字符集_Python 操作 MySQL 字符集的问题
  6. 详解centos7 YCM YouCompleteMe自动补全安装,亲测成功
  7. 计算机调剂名额多的考研学校,避免调剂被刷,2020年考研调剂最容易成功的4类院校,提前了解!...
  8. 中兴助印尼Smartfren测试大规模MIMO技术
  9. android5.1使用SerialManagerService
  10. 第五章平稳过程(1)
  11. trace (矩阵的迹) 的性质
  12. 电工模拟接线软件 app_电气接线方法以及线号管正确方向
  13. 测试人员应该具备的几种思维
  14. 17个改变世界的数学公式!
  15. lzg_ad:XPE网络功能组件
  16. TQ2440开发板移植UBOOT-2010.06总结(3)
  17. Windows10息屏快的问题解决办法(在更改屏幕和睡眠时间无效的情况下)
  18. js 公众号 获取code_微信公众号开发之网页授权登录及code been used 解决!
  19. MCMC如何满足细致平稳条件?
  20. Java 操作 ElasticSearch

热门文章

  1. 远程值守_北京静态交通公司首个远程值守停车场投入使用
  2. 抢购网站服务器时间表,js获取服务器时间,实现抢购倒计时
  3. Linux排障必备命令
  4. 如何加速云原生数据应用?这个开源项目备受关注
  5. 云原生时代,应用架构将如何演进?
  6. 云原生存储系列文章(一):云原生应用的基石
  7. html的表单图形验证码怎么做,form表单验证加验证码.html
  8. nodejs 面向对象 私有变量_Java准备校招之面向对象总结
  9. 爬虫技术python nutch_python爬虫,学习路径拆解及资源推荐(第三篇:工程化爬虫)...
  10. 恩平服务器维修,四月 2021 | EDUP