当前位置: 首页 > news >正文

(5)从零开发 Chrome 插件:Vue3 Chrome 插件待办事项应用

(1)从零开发 Chrome 插件:构建你的第一个插件
(3)从零开发 Chrome 插件:实现 API 登录与本地存储功能
(3)从零开发 Chrome 插件:网页图片的批量下载
(4)从零开发 Chrome 插件:Chrome插件调试全攻略
(5)从零开发 Chrome 插件:Vue3 Chrome 插件待办事项应用

Vue3 Chrome 插件待办事项应用

功能概述

一个基于Vue3的Chrome插件待办事项应用,具有以下功能:

  • 添加/删除待办事项
  • 标记完成状态
  • 数据自动保存到Chrome存储
  • 响应式界面设计

功能实现

添加待办事项
标记事项为已完成 / 未完成
删除单个事项
清空所有事项

在这里插入图片描述

技术栈

  • Vue 3 - 前端框架
  • Chrome Extension API - 浏览器扩展功能
  • Tailwind CSS - 样式设计
  • Vite - 构建工具

技术要点

数据持久化:

  • 使用 chrome.storage.sync 存储数据

响应式设计:

  • 使用 Tailwind CSS 实现响应式布局
  • 适配不同屏幕尺寸

核心代码实现

项目结构

vue3-todo-chrome-extension/
├── src/
│   ├── App.vue          # 主组件
│   ├── main.js          # 入口文件
├── public/
│   ├── manifest.json    # 插件清单
├── package.json         # 项目配置

在这里插入图片描述

数据存储

// 初始化数据
onMounted(() => {chrome.storage.sync.get(['todos', 'lastUpdated'], (result) => {if (result.todos) todos.value = result.todosif (result.lastUpdated) lastUpdated.value = result.lastUpdated})
})// 监听数据变化
watch(todos, (newTodos) => {chrome.storage.sync.set({todos: newTodos,lastUpdated: Date.now()})
}, { deep: true })

待办事项管理

// 添加待办
const addTodo = () => {if (newTodo.value.trim() === '') returntodos.value.push({id: Date.now(),text: newTodo.value,completed: false})newTodo.value = ''
}

界面组件

<div class="space-y-2 mb-6 max-h-60 overflow-y-auto pr-1"><div v-for="(todo, index) in todos" :key="todo.id"class="flex items-center p-3 border rounded-lg hover:bg-gray-50 transition duration-200"><input type="checkbox" :checked="todo.completed"@change="toggleTodo(index)"><span :class="todo.completed ? 'line-through text-gray-400' : 'text-gray-800'">{{ todo.text }}</span><button @click="deleteTodo(index)"><i class="fa fa-trash-o"></i></button></div>
</div>

安装与使用

    1. 安装依赖
npm install
  • 2.开发模式:
npm run dev
    1. 构建生产版本:
npm run build
    1. 在Chrome中加载dist目录作为扩展程序

特点

响应式设计,适配不同屏幕尺寸
数据自动保存,关闭浏览器后仍可恢复
简洁直观的用户界面
轻量级,快速加载

总结

这个Chrome插件展示了如何结合Vue 3的响应式特性和Chrome扩展API,实现一个功能完整、数据持久的待办事项应用。通过组合式API,代码结构清晰易维护,而Tailwind CSS则提供了美观的界面样式。

http://www.lryc.cn/news/594320.html

相关文章:

  • 数控调压BUCK电路 —— 基于TPS56637(TI)
  • Spring Cloud Gateway高危隐患
  • jmeter如何做自动化接口测试?
  • jQuery多库共存
  • http基础一
  • 游戏剧情抄袭侵权比对报告:防止“爆款”变“爆雷”
  • C 语言经典编程题实战:从基础算法到趣味问题全解析
  • Qemu-NUC980(一):SOC框架代码添加
  • LeetCode 3202.找出有效子序列的最大长度 II:取模性质(动态规划)
  • 智能制造——48页毕马威:汽车营销与研发数字化研究【附全文阅读】
  • 【图像处理基石】什么是畸变校正?
  • 2025牛客暑期多校训练营2(部分补题)
  • 【LeetCode 热题 100】124. 二叉树中的最大路径和——DFS
  • 网络安全隔离技术解析:从网闸到光闸的进化之路
  • 【机器学习深度学习】魔塔社区模型后缀全解析:Base、Chat、Instruct、Bit、Distill背后的技术密码
  • leetcode丑数II计算第n个丑数
  • Java行为型模式---解释器模式
  • 大语言模型:人像摄影的“达芬奇转世”?——从算法解析到光影重塑的智能摄影革命
  • 核电子数字多道分析(DMCA)系统中,脉冲展宽的核心目的
  • 力扣:动态规划java
  • 基于单片机的火灾报警系统设计
  • 每日算法刷题Day50:7.20:leetcode 栈8道题,用时2h30min
  • 处理Electron Builder 创建新进程错误 spawn ENOMEM
  • C++ primer知识点总结
  • D. Traffic Lights 【Codeforces Round 1038, Div. 1 + Div. 2】
  • docker制作前端镜像
  • securecrt连接服务器报错 Key exchange failed 怎么办
  • Direct3D 11学习(一)
  • 股票账户数据及其数据获取
  • Python dataclass 高阶用法与技巧