Skip to content
AstroPaper
Go back

How Do I Develop My Terminal Portfolio Website with React

Edit page

这篇文章最初来自我的博客文章。我将此文放在这里,是为了演示如何使用 AstroPaper 主题撰写博客文章。

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

Sat Naing's Terminal Portfolio

目录

简介

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

技术栈

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

当然还有 TypeScript 用于类型检查。

在样式方面,我采取了与平时不同的做法。我没有选择纯 CSS、Sass 或像 TailwindCSS 这样的实用工具 CSS 框架,而是选择了 CSS-in-JS 方案(Styled-Components)。虽然我知道 Styled-Components 有一段时间了,但从未真正尝试过。因此,这个项目中 Styled-Components 的编写风格和结构可能不是很有条理或很优秀。

这个项目不需要非常复杂的状态管理。我在这个项目中只使用了 ContextAPI 来实现多主题切换和避免 prop 层层传递。

以下是对技术栈的快速回顾:

功能特性

以下是该项目的一些功能特性:

多主题

用户可以切换多个主题。在撰写本文时,共有 5 个主题;未来可能还会添加更多主题。选定的主题会保存在本地存储中,这样在页面刷新时主题不会改变。

Setting different theme

命令行自动补全

为了尽可能贴近真实终端的外观和体验,我加入了一个命令行自动补全功能,只需按「Tab」或「Ctrl + i」即可自动填充部分输入的命令。

Demonstrating command-line completion

历史命令

用户可以通过按上/下箭头键回到之前的命令或浏览之前输入的命令。

Going back to previous commands with UP Arrow

查看/清除命令历史记录

可以在命令行中输入「history」来查看之前输入的命令。输入「clear」或按「Ctrl + l」可以清除所有命令历史记录和终端屏幕。

Clearing the terminal with 'clear' or 'Ctrl + L' command

结语

这是一个非常有趣的项目,而这个项目的一个特别之处在于我必须更多地关注逻辑而非用户界面(尽管这算是一个前端项目)。

项目链接


Edit page
Share this post on:

Previous Post
Tailwind Typography Plugin
Next Post
How Do I Develop My Portfolio Website & Blog