返回

Vue 番茄钟——设置你的专注时间,让任务的效率最大化!

前端

在当今这个快节奏的时代,时间管理是一项至关重要的技能。对于那些致力于提高任务专注度并最大化工作效率的人来说,番茄钟是一种非常实用的工具。它本质上是一种时间管理方法,涉及到将工作时间分成25分钟的专注期,然后以5分钟的休息时间作为间隔。如此循环往复,直到任务完成。

使用 Vue 和 Electron 框架,你可以轻松构建一个简约而实用的番茄钟应用程序。Vue 是一个流行的前端 JavaScript 框架,以其简洁和灵活性而著称。Electron 则是一个允许你使用 Web 技术构建跨平台桌面应用程序的框架。结合这两个框架,你可以创建一个跨平台的番茄钟应用,在各种操作系统上都能运行。

打造你的 Vue 番茄钟:

  1. 设置项目: 首先,你需要创建一个新的 Vue 项目并安装 Electron。你可以使用 Vue CLI 工具轻松实现这一点,只需运行以下命令:
vue create vue-tomato-timer
cd vue-tomato-timer
  1. 添加 Electron: 接下来,你需要安装 Electron 并将其集成到你的 Vue 项目中。你可以通过运行以下命令来做到这一点:
npm install --save-dev electron
  1. 创建主进程文件: 现在,你需要创建一个主进程文件,负责处理与系统交互的操作。在你的项目目录下创建一个名为 main.js 的文件,并添加以下代码:
const { app, BrowserWindow } = require('electron')

function createWindow () {
  // 创建浏览器窗口
  const win = new BrowserWindow({ width: 800, height: 600 })

  // 加载应用的 index.html
  win.loadFile('index.html')

  // 打开开发者工具
  win.webContents.openDevTools()
}

// 当 Electron 初始化完成时,创建窗口
app.whenReady().then(createWindow)

// 当所有窗口关闭时,退出应用
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

// 在 macOS 上,即使所有窗口都关闭了,应用也会继续运行
// 所以我们必须在 macOS 上明确地退出应用
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})
  1. 创建渲染进程文件: 接下来,你需要创建一个渲染进程文件,负责在浏览器窗口中显示番茄钟的界面。在你的项目目录下创建一个名为 index.html 的文件,并添加以下代码:
<!DOCTYPE html>
<html>
<head>
  
</head>
<body>
  <div id="app"></div>
  <script src="main.js"></script>
</body>
</html>
  1. 添加 Vue 组件: 现在,你需要创建一个 Vue 组件来处理番茄钟的逻辑。在你的项目目录下创建一个名为 TomatoTimer.vue 的文件,并添加以下代码:
<template>
  <div>
    <h1>番茄钟</h1>
    <p>专注时间:{{ focusTime }}</p>
    <p>休息时间:{{ breakTime }}</p>
    <p>当前状态:{{ currentState }}</p>
    <button @click="startTimer">开始</button>
    <button @click="stopTimer">停止</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      focusTime: 25,
      breakTime: 5,
      currentState: 'idle'
    }
  },
  methods: {
    startTimer() {
      this.currentState = 'focus'
      setTimeout(() => {
        this.currentState = 'break'
      }, this.focusTime * 60 * 1000)
    },
    stopTimer() {
      this.currentState = 'idle'
    }
  }
}
</script>
  1. 打包应用: 最后,你可以使用 Electron Builder 来打包你的应用,将其生成一个独立的可执行文件。运行以下命令来安装 Electron Builder:
npm install --save-dev electron-builder

然后,运行以下命令来打包你的应用:

electron-builder build

这样,你就可以将打包好的应用安装到你的电脑上,并随时使用它来管理你的时间了。

结语

通过结合 Vue 和 Electron,你可以轻松构建一个功能齐全、跨平台的番茄钟应用。这个应用可以帮助你更好地管理时间,提高任务专注度,并最大化你的工作效率。你可以在 GitHub 上找到这个项目的完整代码。