vue 实现 tomato timer(蕃茄钟)实例讲解


Posted in Javascript onJuly 24, 2017

近期在学习【时间管理】方面的课程,其中有一期讲了蕃茄工作法,发现是个好多东西。蕃茄工作法核心思想就是:工作25分钟,休息5分钟。如果您好了解更多可以自行度娘。 在加上本人是一个程序猿,就想用程序的方式来表达对此工作法的敬意。因此就产生了用vue实现一个tomato timer的想法。

vue 实现 tomato timer(蕃茄钟)实例讲解

一、vue如何实现他的

1. 依赖的包

"devDependencies": {
 "babel-plugin-lodash": "^3.2.11",
 "babel-preset-es2015-rollup": "^3.0.0",
 "babel-preset-latest": "^6.24.1",
 "rollup": "^0.41.6",
 "rollup-plugin-babel": "^2.7.1",
 "rollup-plugin-commonjs": "^8.0.2",
 "rollup-plugin-node-resolve": "^3.0.0",
 "rollup-plugin-replace": "^1.1.1",
 "rollup-plugin-vue": "^2.4.0"
 },
 "dependencies": {
 "iview": "^2.0.0-rc.19",
 "lodash": "^4.17.4",
 "vue": "^2.4.1",
 "vuex": "^2.3.1"
 }

打包工具没有用流行的webpack,而是rollup,因为他有shaking tree技术。

ui用的是iview,mvvm当然是我熟悉而喜爱的vue了。

2. 项目结构

vue 实现 tomato timer(蕃茄钟)实例讲解

说明:

aloneIndex.js和Index.js都是此模块的入口,index.js是用于对接本人实现的vueManager中后端管理平台,而aloneIndex.js则是让tomato timer能单独运行。

本项目实现了数据与视图的解藕,也就是.vue文件中不在直接操作store(存储层),而是调用service层提供的方法来进行中转。

3. 实现中遇到的坑

rollup对lodash的shaking tree无效

解决办法:

安装:babel-plugin-lodash(将模块的commonJs规范转换为es6规范)、babel-preset-latest

.babelrc配置文件修改:

{
 "presets": [["latest",{
  "es2015":{
   "modules":false
  }
 }]],
 "plugins": ["lodash"],
 "compact": true //处理max 500kb的问题
}

babel提示lodash打包超过500kb的问题

只需要在.bablerc中加入compact:true节点即可。

独立打包后,运行是提示'process is undefine'的问题

安装rollup-plugin-replace即可。

以上这篇vue 实现 tomato timer(蕃茄钟)实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用 JSON 处理缓存
Apr 27 Javascript
js或css实现滚动广告的几种方案
Jan 28 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
Aug 21 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
Jul 05 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
Angular排序实例详解
Jun 28 Javascript
微信小程序实现鼠标拖动效果示例
Dec 01 Javascript
jquery的$().each和$.each的区别
Jan 18 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 #jQuery
php register_shutdown_function函数详解
Jul 23 #Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 #Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 #Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 #jQuery
基于Vue.js实现tab滑块效果
Jul 23 #Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 #Javascript
You might like
php操作mysqli(示例代码)
2013/10/28 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php数据库备份还原类分享
2014/03/20 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
Smarty3配置及入门语法
2017/02/22 PHP
Js sort排序使用方法
2011/10/17 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
js操作二进制数据方法
2018/03/03 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
Unix如何添加新的用户
2014/08/20 面试题
秋季开学典礼主持词
2014/03/19 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
民政局未婚证明
2015/06/15 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python