vue 饿了么项目

1.图标字体引用

链接

2.scss 二三倍图切换 1像素边框

链接

3.better-scroll

4.布局

商品主页面

<div id="app">
    <v-header :seller='seller'></v-header>
    <div class="tab">
      <div class="tab-item">
        <router-link to="/goods">商品</router-link>
      </div>
      <div class="tab-item">
        <router-link to="/ratings">评价</router-link>
      </div>
      <div class="tab-item">
        <router-link to="/seller">商家</router-link>
      </div>
    </div>
    <keep-alive>
      <router-view :seller='seller'></router-view>
    </keep-alive>
  </div>

主页面包含头部,三个tab菜单切换。头部在页面切换时通用。每个菜单下router-view都有通用商家信息,通过props动态传入seller数据给各个子组件。

<router-view :seller='seller'></router-view>

1.header.vue组件

<template>
  <div class="header">
    <!-- 头部内容 -->
    <div class="content-wrapper">
      <div class="avatar"></div>
      <div class="content"></div>
      <div class="supports_count" @click="showDetail(true)"></div>
    </div>
    <!-- 公告栏 -->
    <div class="bulletin-wrapper" @click="showDetail(true)">
      <span class="bulletin-title"></span>
      <span class="bulletin-text"></span>
      <span class="icon-keyboard_arrow_right"></span>
    </div>
    <!-- 背景 -->
    <div class="background"></div>
    <!-- 头部详细页面 -->
    <transition name="fade">
      <div class="detail" v-show="detailShow">
        <div class="detail-main">
          <div class="name"></div>
          <div class="star-wrapper"></div>
          <div class="title"></div>
          <div class="supports"></div>
          <div class="title"></div>
          <div class="content"></div>
        </div>
        <div class="detail-close" @click="showDetail(false)"></div>
      </div>
    </transition>
  </div>
</template>

公告栏一行多余字体省略

.bulletin-wrapper{
    position: relative;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    .bulletin-title{    //span元素转为行内块元素 为了可以使用width height控制图标大小
      display: inline-block;
      vertical-align: middle;
      @include bg-image("bulletin");
    }
    .bulletin-text{
    }
    .icon-keyboard_arrow_right    //字体图标绝对定位
        position absolute
        top: 9px
        right 2px
  }

头部详细页面点击显示和隐藏

<div class="supports_count" v-if="seller.supports" @click="showDetail(true)">
<div class="detail-close" @click="showDetail(false)">
    <transition name="fade">
      <div class="detail" v-show="detailShow">
         //内容
      </div>
    </transition>    

    data () {
      return {
        detailShow: false
      }
    },
    methods: {
      showDetail (isShow) {
        this.detailShow = isShow
      }
    },

  &.fade-enter-active, &.fade-leave-active
  transition: opacity .3s linear
  &.fade-enter,&.fade-leave-to
  opacity: 0
 

Vue只有在插入,更新或者移除DOM元素时才会应用过渡效果。

使用vue提供的transition来封装组件成为过渡组件,transition需要与如下情景中的任一种一起使用:

  • v-if(条件渲染)

  • v-show(条件展示)

  • 动态组件

  • 在组建的根节点上,并且被vue实例DOM方法触发,如appendTo方法把组件添加到某个根节点上

组件过渡过程中,会有四个CSS类名进行切换,这四个类名与上面transition的name属性有关,比如name="fade",会有如下四个CSS类名:

  1. fade-enter:进入过渡的开始状态,元素被插入时生效,只应用一帧后立即删除;

  2. fade-enter-active:进入过渡的结束状态,元素被插入时就生效,在过渡过程完成之后移除;

  3. fade-leave:离开过渡的开始状态,元素被删除时触发,只应用一帧后立即删除;

  4. fade-leave-active:离开过渡的结束状态,元素被删除时生效,离开过渡完成之后被删除;

从上面四个类名可以看出,fade-enter-active和fade-leave-active在整个进入或离开过程中都有效,所以CSS的transition属性在这两个类下进行设置。 
上面示例中,fade-enter和fade-leave-active类设置CSS为opacity:0,说明过渡刚进入和离开的时候透明度为0,即不显示。

vue 饿了么项目笔记的更多相关文章

  1. vue饿了么学习笔记(1)vue-cli开启项目

    一.vue-cli介绍 vue-cli是vue的脚手架工具 ---->  帮助写好vue.js基础代码的工具: ① 搭建目录结构 ② 进行本地调试 ③ 进行代码部署 ④ 热加载 ⑤ 进行单元测试 ...

  2. 项目笔记-vue

    记录新建vue项目之后的种种. 2019年3月12日,从git上下载了一个vue后台模板的项目,git地址:https://github.com/lin-xin/vue-manage-system ( ...

  3. Vue常用经典开源项目汇总参考-海量

    Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...

  4. Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid

    Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html & ...

  5. Django商城项目笔记No.10用户部分-登录接口

    Django商城项目笔记No.10用户部分-登录接口 添加url路由 接下来第二步,增加返回内容: 增加结果如下: 配置:上边的方法定义了返回的内容都有哪些,那这个方法jwt还不知道,需要配置: 修改 ...

  6. Django商城项目笔记No.5用户部分-注册接口-短信验证码

    Django商城项目笔记No.4用户部分-注册接口-短信验证码 短信验证码也保存在redis里(sms_code_15101234567) 在views中新增SMSCodeView类视图,并且写出步骤 ...

  7. Django商城项目笔记No.1项目准备工作

    Django商城项目笔记No.1项目准备工作 一.本项目商城属于B2C商业模式 二.项目采用前后端分离的应用模式 前端使用Vue.js 后端使用Django REST framework 1.创建gi ...

  8. 【前端】Vue.js经典开源项目汇总

    Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...

  9. Vue.js经典开源项目汇总

    Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) ...

随机推荐

  1. SQL Server的优化器会缓存标量子查询结果集吗

    在这篇博客"ORACLE当中自定义函数性优化浅析"中,我们介绍了通过标量子查询缓存来优化函数性能: 标量子查询缓存(scalar subquery caching)会通过缓存结果减 ...

  2. C#-hello world(二)

     1.C# 程序构成 命名空间(Namespace) 一个 class Class 方法 Class 属性 一个 Main 方法 语句(Statements)和 表达式(Expressions) 注释 ...

  3. linux源

    系统:centos7 x86_64 一.配置本地yum源 1.1加载光驱 1.2挂载到系统 注:如果要长期使用最好把整个镜像文件拷贝到系统下 1.3配置文件 路径/etc/yum.repos.d/ 打 ...

  4. python第一百三十天 ---简单的BBS论坛

    简单的BBS论坛 实现功能 git仓库地址:https://github.com/uge3/BBS 1.整体参考“抽屉新热榜” + “博客园” 2.实现不同论坛版块 3.帖子列表展示 4.个人博客主页 ...

  5. 智能合约 solidity 开发的环境基本搭建

    以太坊Dapp开发快速入门 以太坊为开源社区,虽然设计东西都很优秀,但是组件十分的杂乱,因此下面首先简单介绍下以太坊的一些常用组件以及各种工具介绍 Geth Geth是由以太坊基金会提供的官方客户端软 ...

  6. c/c++ 标准库 智能指针( smart pointer ) 是啥玩意儿

    标准库 智能指针( smart pointer ) 是啥玩意儿 一,为什么有智能指针??? c++程序员需要自己善后自己动态开辟的内存,一旦忘了释放,内存就泄露. 智能指针可以帮助程序员"自 ...

  7. Jetbrains IntelliJ IDEA PyCharm 注册激活(2018最新)

    AppCode CLion DataGrip GoLand IntelliJ IDEA PhpStorm PyCharm Rider RubyMine WebStorm下载注册激活 官方下载地址 Ap ...

  8. LeetCode算法题-Power Of Three(Java实现-七种解法)

    这是悦乐书的第204次更新,第215篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第71题(顺位题号是326).给定一个整数,写一个函数来确定它是否为3的幂.例如: 输入 ...

  9. Spring的jdbc模板3:完成CURD操作

    测试类代码如下 package zcc.spring_jdbc.demo2; import java.sql.ResultSet; import java.sql.SQLException; impo ...

  10. C. Playlist Educational Codeforces Round 62 (Rated for Div. 2) 贪心+优先队列

    C. Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...