跳转到内容
文韬博宇的个人主页
返回

【转载】我是如何用 React 开发终端风格作品集网站的

· 约 2 分钟· 约 681 字阅读0编辑页面
本文已超过两年未更新,部分内容可能已过时,请注意甄别。

本文最初发表于我的博客。我把这篇文章放在这里,是为了演示如何使用 AstroPaper 主题写博客文章。

使用 ReactJS、TypeScript 和 Styled-Components 开发终端风格网站,包含自动补全、多主题、命令提示等功能。

Sat Naing 的终端风格作品集

目录

引言

最近我开发并上线了我的作品集加博客网站。很开心收到了一些不错的反馈。今天,我想介绍我的新终端风格作品集网站。它使用 ReactJS 和 TypeScript 开发。这个灵感来自 CodePen 和 YouTube。

技术栈

这是一个纯前端项目,没有任何后端代码。UI/UX 部分在 Figma 中设计。对于前端界面,我在纯 JavaScript 和 NextJS 之间选择了 React。为什么?

当然,还有 TypeScript 做类型检查。

在样式方面,我这次走了一条不同的路。没有选纯 CSS、Sass 或 TailwindCSS 这样的工具类 CSS 框架,而是选了 CSS-in-JS 方案(Styled-Components)。虽然我早就知道 Styled-Components,但从来没有真正用过。所以这个项目中 Styled-Components 的写法和管理结构可能不够成熟、不够好。

这个项目不需要很复杂的状态管理。我只用 ContextAPI 来处理多主题切换和避免 prop drilling。

快速回顾一下技术栈:

功能特性

以下是项目的一些功能。

多主题

用户可以切换多个主题。在写这篇文章的时候有 5 个主题可选,以后可能还会增加。选中的主题保存在 localStorage 中,这样刷新页面后主题不会丢失。

设置不同主题

命令行自动补全

为了尽可能贴近真实终端的体验,我加入了命令行自动补全功能,只需按 ‘Tab’ 或 ‘Ctrl + i’ 就能自动补全输入中的部分命令。

命令行自动补全演示

历史命令

用户可以通过按上、下方向键回到之前的命令,浏览已输入过的命令。

用上方向键回退到历史命令

查看/清除命令历史

之前输入过的命令可以在命令行输入 ‘history’ 查看。所有命令历史和终端屏幕可以通过输入 ‘clear’ 或按 ‘Ctrl + l’ 清除。

用 'clear' 或 'Ctrl + L' 命令清空终端

结语

这是一个非常有趣的项目,这个项目特殊的地方在于:即使这是一个前端项目,我更多需要关注的是逻辑而非用户界面。

项目链接


编辑页面
分享这篇文章:

评论


上一篇
【转载】Tailwind Typography 插件