vue2.0 饿了么项目学习总结
最近在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 饿了么项目学习总结的更多相关文章
- VUE2.0 饿了吗视频学习笔记(七-终):compute,循环,flex,display:table
一.star组件使用到了computed属性 computed相当于属性的一个实时计算,当对象的某个值改变的时候,会进行实时计算. computed: { starType() { return 's ...
- VUE2.0 饿了吗视频学习笔记(六):定位问题、文字显示、模糊背景图片、点击事件
一.定位问题按照视频写代码时,发现元素“5个“”定位不对,如下图 正常位置为 还以为是哪里写错了,仔细研究了下,需要在父div上加relative. position:relative/absolut ...
- VUE2.0 饿了吗视频学习笔记(五):父子对象传递、显示图片
一.父子组件之间对象传递 1.app.Vue中的v-header 中加入 v-bind:seller="seller" template> <div id=" ...
- VUE2.0 饿了吗视频学习笔记(四):颜色、跳转、设置、vue-resource
https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 1.设置选中项颜色 <template> <div id=" ...
- VUE2.0 饿了吗视频学习笔记(二):新版本添加路由和显示Header
https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 webpack.dev.conf.js中添加两段代码 'use strict' cons ...
- VUE2.0 饿了吗视频学习笔记(一):VUE示例data.json
https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中有的同学找不到data.json,以下是data.json内容 { "selle ...
- VUE2.0 饿了吗视频学习笔记(三):VUE2.0取消了v-link
https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 写法如下 <div class="tab-item"> ...
- vue2.0版cnode社区项目搭建及实战开发
_________________________________________________________________________ 初涉vue就深深的被vue强大的功能,快速的开发能力 ...
- vue2.0 使用webpack搭建项目遇到的最搞笑的坑
报错如下: 源码: 然后找了半天没搞明白... 无意中翻看了一下ES6语法规则.. 然后我发现:源代码最后一行要空一行,我心想这什么狗屁规定?MMP
随机推荐
- mysql 按照姓氏排序
1.如果是gbk存储 order by name asc 2.非GBK order by convert(name using gbk) asc
- Kotlin if else判断
Kotlin的if相对与java,有着较为灵活的用法. if是用来判断. if在Kotlin里面可以作为表达式来使用. 如果熟悉C java C#等 A>B:A?B这个判断应该是很熟悉,而Kot ...
- bzoj 4182
首先很容易看出这是一个树上多重背包问题 设状态$f[i][j]$表示以$i$为根的子树中利用的体积是$j$ 但是题目中有要求:选择的点集必须是一个联通块 这要怎么处理? 点分治! 首先我们利用点分治的 ...
- 【bzoj2140】: 稳定婚姻 图论-tarjan
[bzoj2140]: 稳定婚姻 哎..都是模板题.. 一眼看过去 哇 二分图哎 然后发现好像并不能匈牙利算法 自己xjb画两张图,发现二分图左向右连配偶的边,然后右向左连交往过的边 然后如果Bi G ...
- BZOJ 1061 [Noi2008]志愿者招募(费用流)
题目描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完成,其中第i ...
- Struts、Hibernate和Spring的整合
Spring整合Hibernate Spring以其开放性,能与大部分ORM框架良好的整合.这样Spring就能轻松地使用ORM. Spring提供了DAO支持,DA0组件是应用的持久层访问的重要组件 ...
- JDBC_时间操作_时间段和日期段查询
import java.sql.Connection; import java.sql.DriverManager;import java.sql.PreparedStatement;import j ...
- JDBC_PreparedStatement用法_占位符_参数处理
import java.sql.Connection; import java.sql.Date;import java.sql.DriverManager;import java.sql.Prepa ...
- iOS苹果和微信中音频和视频实现自动播放的方法
通过下面的方式可以解决,在iPhone手机微信中正常自动播放. 必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效,猜测微信接口做了处理~ <audio prel ...
- 安装jdk1.8,编写环境变量
好记性不如烂笔头!!!(我这是把jdk放在的/usr/local下,且命令为jdk1.8...复制的时候别搞错位置了) JAVA_HOME=/usr/local/jdk1./ JAVA_BIN=/us ...