为什么我要搭建自己的个人网站
今日は新しい発見に満ちた一日でした。コードを書く時間は、まるで静かな海を航海するような感覚です。
为什么我要搭建自己的个人网站
最近在和朋友们的聊天中发现好多朋友都有自己的个人网站。有的用来展示作品集,有的用来写博客记录生活,还有的纯粹就是觉得好玩。看着看着,我也心动了。
其实最开始我并没有特别强烈的需求。我既不是设计师,也不是什么技术大牛,只是一个普通的学生。但不知道为什么,看到那些简洁优雅的个人网站,总觉得有种说不出的吸引力。可能这就是所谓的"数字时代的个人名片"吧。
一个巧合的契机
真正让我下定决心的是,下学期我要去德国交换,而且正好有一门叫"Web Technology"的课要重新上(不过也是实在搞不明白为什么上过的课还得重新上一遍)。说实话,我对前端开发一直有点兴趣,但总是停留在"想学"的阶段,从来没有真正动手做过什么完整的项目。
这次我想,既然要学这门课,不如提前做点准备。与其等到上课时手忙脚乱,不如现在就边做边学。搭建一个个人网站,既能复习一下前端的基础知识,又能有个实际的作品可以展示,一举两得。
技术选择的心路历程
刚开始的时候,我对技术栈的选择其实挺纠结的。React、Vue、还是直接用原生 HTML?要不要用框架?CSS 是用传统的写法还是用 Tailwind?
后来我选择了 Next.js,主要是因为它的文档写得特别好,而且社区很活跃。遇到问题的时候,很容易找到解决方案。Tailwind CSS 也是因为它的"实用优先"理念,写起来特别快,不用在 CSS 文件和 HTML 之间来回切换。
至于动画库,我选了 Framer Motion。其实最开始我考虑过用 CSS 动画,但后来发现用 JavaScript 控制动画会更灵活,而且 Framer Motion 的 API 设计得很直观,学起来不费劲。
设计灵感的来源
在设计风格上,我选择了极简主义。不是因为我有多高的审美,而是因为我发现,越简单的东西越不容易过时。而且,简洁的设计也意味着更少的代码,更快的加载速度,这对一个学生项目来说很重要。
双主题的想法其实是在开发过程中慢慢形成的。最开始我只想做深色模式,因为我觉得深色模式看起来很酷。但后来想想,白天用深色模式其实对眼睛不太好,所以就加了一个"正午"模式。两个主题分别叫"正午"和"深海",听起来有点中二,但我还挺喜欢的。
开发过程中的小插曲
说实话,开发过程并不顺利。我遇到了很多问题,比如主题切换时的闪烁、Canvas 动画的性能问题、还有各种 React 的 hydration 错误。每次遇到问题,我都要花很多时间查资料、看文档、调试代码。
最让我头疼的是那个数字矩阵的动画效果。最开始我想做一个类似《黑客帝国》那样的效果,但做出来之后发现太卡了,在低端设备上根本跑不动。后来我限制了帧率,优化了渲染逻辑,才勉强达到了可以接受的效果。
还有一次,我花了一整个下午调试一个主题切换的 bug。明明代码看起来没问题,但就是会在某些情况下出现闪烁。最后发现是因为我在 useEffect 里直接调用了 setState,导致了一些时序问题。解决之后,我学到了很多关于 React 渲染机制的知识。
一些意外的收获
虽然过程很辛苦,但我也收获了很多。首先是技术上的提升。通过这个项目,我对 React、Next.js、还有现代前端开发的整个流程都有了更深入的理解。这些知识在"Web Technology"课上肯定能派上用场。
其次是对设计的理解。以前我总觉得设计就是"好看就行",但现在我明白了,好的设计不仅要好看,还要好用。每一个交互、每一个动画、每一个颜色选择,都要有它的理由。
最重要的是,我有了一个可以持续更新的空间。以后有什么想法、有什么学习心得,都可以写在这里。这比在社交媒体上发动态更有仪式感,也更容易沉淀下来。
关于未来
这个网站现在还有很多不完善的地方。比如留言板功能还很简单,没有真正的后端支持;比如还没有搜索功能;比如多语言支持还只是 UI 层面的,内容还是中文为主。
但我并不着急。这个网站对我来说,更像是一个学习和实验的场所。我会慢慢完善它,添加新功能,优化用户体验。也许等我从德国回来,这个网站会变得完全不一样。
如果你也在考虑搭建自己的个人网站,我的建议是:不要想太多,直接开始做。技术栈的选择其实没那么重要,重要的是开始动手。在做的过程中,你会遇到很多问题,但解决这些问题的过程,就是最好的学习。
"在正午与深海的交界处,记录时间的残响。"
留言板
We respect your privacy. Gravatar/GitHub profiles are used only for display.
很棒的网站设计!