最近在GitHub上发现一个基于vue2.0的饿了么项目。本着互联网的分享精神,现在将我自己所理解的,所总结的经验分享给大家。本篇文字我将从学习的角度向大家分享。

在学习本项目之前我已经将vue2.0的 官网官方案例 和vue-router的官方案例和api看了一遍。

点击下载项目资料

注意:网页打开的速度有些缓慢还有可能访问失败但是绝对可以打开的,有条件的朋友可以使用FQ软件打开网址。

运行项目

注:我已在我的电脑上装了node环境、vue-cli、webpack的全局变量

1、讲下载的文件存放在一个自己方便查找的地方,我存在D:\Study\vue-sell-master。 一般我们管这个地址叫做工程文件地址。

2、打开命令行工具(win键+R 输入cmd回车)依次输入 d: 回车、cd: D:\Study\vue-sell-master 回车,此时命令行就定位到了我们的工程文件目录,输入npm install 回车,即可安装项目中所以的依赖(此处需要一段时间,如果有淘宝镜像会快很多,想了解淘宝镜像的请自行百度)。

3、输入 npm run dev  回车。然后在浏览器打开,localhost:8088  即可访问项目地址。此时咱们就可以看到饿了么的项目啦。

分析项目 - 知识点讲解

1、路由配置

  打开项目的第一眼就看见了项目上分的tab栏,而我的第一感觉就是使用了vue-router的路由系统,打开源码一看果然是使用了路由系统。在项目的main.js 中的一个 routes变量中就是与路由的相关配置。

不懂路由配置的的同学可以访问http://jsfiddle.net/yyx990803/L7hscd8h/ 进行查看。

2、动画效果  

  然后在页面中的增加和减少商品数量吸引力我,在点击+按钮时如果商品数量是0的话,那么-号就会出现,而且还是动画形式的出现。这勾起了我的好奇心,打开源码查看,果然是使用了。

  因为路由地址默认访问的是goods页面。我们打开goods,发现加减号的位置使用的是一个叫cartcontrol组件。在52行找到组件对应的文件文件名叫cartcontrol。我们打开cartcontrol文件。发现动画位置使用了一个transition的组件,transition组件的作用就是做动画不懂的同学可以访问 https://cn.vuejs.org/v2/guide/transitions.html 进行学习。

  在官方案例中,动态效果分为四个阶段v-enter: 定义进入过渡的开始状态。在元素被插入时生效,在下一个帧移除、v-enter-active: 定义进入过渡的结束状态。在元素被插入时生效,在 transition/animation 完成之后移除、v-leave: 定义离开过渡的开始状态。在离开过渡被触发时生效,在下一个帧移除、v-leave-active: 定义离开过渡的结束状态。在离开过渡被触发时生效,在transition/animation 完成之后移除。

  我们看案例中cartcontrol中第60行-66号是定义动画效果的css。很明显第60行作者将v-enter-active,和move-leave-active。定义为了0.4s linear。意思就是显示和隐藏都是0.4s,以linear形式运动。并且在第62行定义了,动画进入过度开始时和离开后后的效果。在第48行定义了元素本身的样式。因为vue的动画实现是在每个阶段通过给元素增加class名字来实现的。vue快速的给元素增加了带有opacity:0的class,在快速删除这个class过度效果是已0.4s形式过度。所以大家就看见了-的按钮以渐显和渐隐的形是展示。

本篇文字未完,持续更新。

vue2.0 饿了么项目学习总结的更多相关文章

  1. VUE2.0 饿了吗视频学习笔记(七-终):compute,循环,flex,display:table

    一.star组件使用到了computed属性 computed相当于属性的一个实时计算,当对象的某个值改变的时候,会进行实时计算. computed: { starType() { return 's ...

  2. VUE2.0 饿了吗视频学习笔记(六):定位问题、文字显示、模糊背景图片、点击事件

    一.定位问题按照视频写代码时,发现元素“5个“”定位不对,如下图 正常位置为 还以为是哪里写错了,仔细研究了下,需要在父div上加relative. position:relative/absolut ...

  3. VUE2.0 饿了吗视频学习笔记(五):父子对象传递、显示图片

    一.父子组件之间对象传递 1.app.Vue中的v-header 中加入 v-bind:seller="seller" template> <div id=" ...

  4. VUE2.0 饿了吗视频学习笔记(四):颜色、跳转、设置、vue-resource

    https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 1.设置选中项颜色 <template> <div id=" ...

  5. VUE2.0 饿了吗视频学习笔记(二):新版本添加路由和显示Header

    https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 webpack.dev.conf.js中添加两段代码 'use strict' cons ...

  6. VUE2.0 饿了吗视频学习笔记(一):VUE示例data.json

    https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中有的同学找不到data.json,以下是data.json内容 { "selle ...

  7. VUE2.0 饿了吗视频学习笔记(三):VUE2.0取消了v-link

    https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 写法如下 <div class="tab-item"> ...

  8. vue2.0版cnode社区项目搭建及实战开发

    _________________________________________________________________________ 初涉vue就深深的被vue强大的功能,快速的开发能力 ...

  9. vue2.0 使用webpack搭建项目遇到的最搞笑的坑

    报错如下: 源码: 然后找了半天没搞明白... 无意中翻看了一下ES6语法规则.. 然后我发现:源代码最后一行要空一行,我心想这什么狗屁规定?MMP

随机推荐

  1. 析构函数的调用------新标准c++程序设计

    示例1: #include<iostream> using namespace std; class CDemo{ public: ~CDemo(){cout<<"d ...

  2. openfiler的介绍与使用

    一. Openfiler简介 Openfiler 能把标准x86/64架构的系统变成一个强大的NAS.SAN存储和IP存储网关,为管理员提供一个强大的管理平台,并能能应付未来的存储需求.依赖如VMwa ...

  3. Thread Group(线程组)

    线程组,可以理解用户池,用来产生线程(用户),每一个线程代表一个用户,在使用JMeter进行性能测试过程中,经常需要模拟多个用户进行测试,可以通过设置线程数代表多少个用户,通常一个线程组就代表一个测试 ...

  4. Mysql数据库自动定时备份软件推荐--MySqlBackupFTP(免费,亲测可用,附使用图示)

    MySqlBackupFTP是一款Mysql数据库自动定时备份软件,免费版本就基本上可以满足我们的需求,不需要什么破解版,可直接官网下载安装使用. 先看结果(日志): 软件界面: 可以设定计划任务,每 ...

  5. js原形链

    基本规则 1.每个对象都具有一个名为__proto__的属性: 2.每个构造函数(构造函数标准为大写开头,如Function(),Object()等等JS中自带的构造函数,以及自己创建的)都具有一个名 ...

  6. 1、TensorFlow简介

    参考:http://www.tensorfly.cn/tfdoc/get_started/basic_usage.html 1.用TensorFlow构造一个简单的线性拟合: # -*- coding ...

  7. 洛谷 P3381【模板】最小费用最大流

    题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表 ...

  8. X7-2存储节点操作系统盘上的变化

    我们知道,在X7-2之前,存储节点的12块机械硬盘的前2块(LUN0和LUN1)中各划出33GB的分区来做RAID1,这个RAID1再划出小的分区来存放操作系统和存储软件等. 但从X7-2开始,这发生 ...

  9. REST模式中HTTP请求方法(GET,POST,PUT,DELETE)

    一直在测试REST模式的WEB SERVICE接口,客户端的HTTP的请求方式一般分为四种:GET.POST.PUT.DELETE,这四种请求方式有什么不同呢.简单的说,GET就是获取资源,POST就 ...

  10. javascrip 词法分析详解

      JavaScript的高级知识---词法分析 词法分析 词法分析方法: js运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数说明 函数在运行的瞬 ...