📍关键词:前端开发 / ECharts / localStorage / 个人网站 / 无后端项目


✨ 一、项目初衷:做一个“完全属于自己”的成长空间

一直以来,我都希望能有一个地方,
能记录下自己的旅行、阅读、兴趣、和那些成长的瞬间。

但是我不想用复杂的框架,也不想被服务器、数据库、后端逻辑束缚。
于是我就开始做一个——完全纯前端的个人成长网站

没有服务器、没有登录注册、没有数据库。
所有数据都在浏览器中保存,支持一键导出 / 导入。
就像一个可以随身携带的成长档案馆。

项目展示如下:

11月2日


⚙️ 二、项目目标与技术路线

这个项目的目标非常明确:

纯前端、零部署、在线加载、持久化数据、轻量不卡顿。

🔧 技术栈选型:

  • HTML5 + CSS3 + JavaScript
  • ECharts 5(通过在线 CDN 加载)
  • 中国地图 JSON(省级地图)
  • localStorage(数据持久化)
  • Base64 占位图(减少体积、提升加载速度)

🚀 实现原则:

目标 实现方式
无服务器 纯静态网页结构
无后端 全部逻辑在前端实现
无数据库 使用 localStorage 存储数据
可备份 导出 / 导入 JSON 文件
即开即用 直接双击 index.html 打开即可运行

🧩 三、功能设计概览

网站整体分为七个主模块,每个模块都能独立运行、自动保存数据。

模块 功能说明
🏠 首页 欢迎语 + 一句话简介 + 「进入网站」按钮
👤 我的 昵称、生日、城市、签名、圆形头像(微信二维码移除)
🗺️ 旅程 省级地图高亮、点击查看详情、五星喜欢程度、旅行笔记
🖼️ 相册 瀑布流 + 点击放大 + 点赞持久化
📚 读书 列表/卡片双视图,支持评分、笔记、导入导出
🎨 兴趣爱好 卡片网格 + 详情长文 + 时间轴作品展示
🐾 宠物 档案、成长记录、照片合集、日常点滴(日历+图文)

🗺️ 四、旅程模块:ECharts地图的“纯前端奇迹”

旅程模块是整个网站的核心。
我没有使用任何后端 API,而是通过 ECharts 的在线版本加载中国地图 JSON 文件。

// 在线加载中国地图
echarts.registerMap('china', chinaJson);

// 点击省份高亮并存储
mapChart.on('click', function (params) {
  const province = params.name;
  saveToLocalStorage(province);
  updateMapHighlight();
});

🧠 数据存储逻辑非常简单:

localStorage.setItem('trips', JSON.stringify(tripList));

每次刷新页面时自动从本地加载上次数据。
悬浮显示旅行详情、点击进入省份详情页。
整个过程完全前端完成,无任何延迟。


📷 五、相册与读书模块:瀑布流与双视图切换

相册模块:

  • 图片采用 Base64 假图占位,后续可替换;
  • 点击大图弹窗查看;
  • 每张图支持独立点赞,数据持久化至 localStorage。

读书模块:

  • 支持“卡片视图”与“列表视图”切换;
  • 自动记忆上次阅读偏好;
  • 支持书名、评分、正文、封面图与日期;
  • 一键导出为 JSON 文件进行备份。

🧠 六、数据管理与备份机制

所有数据均本地保存,结构清晰:

{
  profile: {...},
  trips: [...],
  gallery: [...],
  books: [...],
  hobbies: [...],
  pets: {...}
}

支持:

  • ✅ 一键导出 JSON
  • ✅ 一键导入 JSON(恢复完整数据)
  • ✅ 自动保存、刷新不丢失

这意味着——

你可以随时清空缓存、备份、迁移,不依赖任何云服务。


💡 七、开发调试与可视化优化

整个网站完全可以离线开发
我使用了 VS Code + Trae AI 编程环境,在本地调试 HTML、CSS、JS。

通过 Chrome 的 DevTools,可以直接模拟手机、Pad 等响应式布局。

另外,地图、折线图、体重趋势图等全部使用 ECharts CDN 版本,无需打包构建。


📸 八、项目界面预览

下图为实际项目运行界面截图(开发版):

在这里插入图片描述

简洁的导航栏 + 三大模块入口
蓝紫渐变标题区 + 图标化分区展示
加载速度极快,体验流畅无卡顿。


🔮 九、后续计划

  • 优化相册支持年份筛选与批量删除
  • 阅读模块支持 Markdown 富文本
  • 宠物时间轴与折线图联动动画
  • 新增夜间模式切换
  • 一键打包导出整个网站(含数据)

💬 十、个人感受

说实话,这个项目做下来最大的收获不是技术,
而是那种「自己从 0 到 1 造出一个完整空间」的成就感。

当你不依赖服务器、不靠框架,
一切从最纯粹的 HTML+JS 实现,
你会重新理解“前端”的意义。

它不只是界面,而是一个能存储记忆、承载思考的容器。


🔗 十一、项目链接

  • 💻 GitHub 地址Tom-python0121/my-personal-blog
  • 📦 项目说明:无需后端、支持离线运行、浏览器即数据仓库。
  • 作者:盼哥 PyAI 实验室

❤️ 最后

如果你也想打造一个属于自己的成长空间,
不妨尝试这种“零后端”的方式。

点个 赞 👍,再 关注我 🧠
我会持续更新这个项目的开发日志、代码优化与设计思路。


Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务

更多推荐