vue 實現 tomato timer(蕃茄鍾)

近期在學習【時間管理】方面的課程,其中有一期講了蕃茄工做法,發現是個好多東西。蕃茄工做法核心思想就是:工做25分鐘,休息5分鐘。若是您好了解更多能夠自行度娘。 在加上本人是一個程序猿,就想用程序的方式來表達對此工做法的敬意。所以就產生了用vue實現一個tomato timer的想法。演示地址 imagehtml

1、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"
  }
複製代碼
  1. 打包工具沒有用流行的webpack,而是rollup,由於他有shaking tree技術。
  2. ui用的是iview,mvvm固然是我熟悉而喜好的vue了。

2. 項目結構


說明:vue

  1. aloneIndex.js和Index.js都是此模塊的入口,index.js是用於對接本人實現的vueManager中後端管理平臺,而aloneIndex.js則是讓tomato timer能單獨運行。
  2. 本項目實現了數據與視圖的解藕,也就是.vue文件中不在直接操做store(存儲層),而是調用service層提供的方法來進行中轉。

3. 實現中遇到的坑

  1. rollup對lodash的shaking tree無效
    解決辦法:
    1. 安裝:babel-plugin-lodash(將模塊的commonJs規範轉換爲es6規範)、babel-preset-latest
    2. .babelrc配置文件修改:
複製代碼
{
    "presets": [["latest",{
        "es2015":{
            "modules":false
        }
    }]],
    "plugins": ["lodash"],
    "compact": true //處理max 500kb的問題
}
複製代碼
  1. babel提示lodash打包超過500kb的問題
    只須要在.bablerc中加入compact:true節點便可。
  2. 獨立打包後,運行是提示'process is undefine'的問題
    安裝rollup-plugin-replace便可。

2、最後的申明

若是發現此工具能提升您的工做效率,請大膽的使用。若是您發現Bug,請反饋於我,咱們將成爲朋友。我也會盡力打造好tomato timer這個小工具。node

相關文章
相關標籤/搜索