折腾了两个周末,我的个人博客终于上线了!说实话,这比我预想的要复杂一些,但也学到了不少东西。想在这里记录一下整个过程,也算是个小小的里程碑。
其实我一直想有个自己的博客,但总觉得太麻烦。之前试过几个平台,要么限制太多,要么广告太多。最后还是决定自己动手,丰衣足食。
主要想通过这个博客:
一开始我在技术选型上纠结了很久:
最后选了 Next.js,原因很简单:
一开始我想做个特别炫酷的设计,结果花了一个周末还在调 CSS。后来醒悟过来,先做个能用的再说。
现在的设计很简单,但我觉得够用了:
我一开始想加很多功能:
后来意识到这些都不是核心功能,先砍掉,专注把基础功能做好。现在的博客只有:
本来以为性能优化很简单,结果发现坑不少:
// 图片懒加载,这个真的很有用 const LazyImage = ({ src, alt }) => { const [isLoaded, setIsLoaded] = useState(false); const [isInView, setIsInView] = useState(false); const imgRef = useRef(); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setIsInView(true); observer.disconnect(); } }, { threshold: 0.1 } ); if (imgRef.current) { observer.observe(imgRef.current); } return () => observer.disconnect(); }, []); return ( <div ref={imgRef} className="lazy-image-container"> {isInView && ( <img src={src} alt={alt} onLoad={() => setIsLoaded(true)} style={{ opacity: isLoaded ? 1 : 0 }} /> )} </div> ); };
这个简单的懒加载组件让页面加载速度提升了 40%,真是意外的收获。
我一开始想自己租服务器部署,觉得这样更自由。但后来算了一下成本:
最后还是选择了 Vercel,虽然有一些限制,但省心太多了:
域名倒是简单,在阿里云买了个 .com 域名,一年 60 元。HTTPS 也不用自己配置,Vercel 自动处理了。
简单总结一下现在的技术栈:
博客只是个开始,我还有一些想法:
做这个博客的过程比我想象的要长,但也学到了很多。不仅是技术上的,还有产品思维、用户体验等方面的思考。
如果你也在考虑做个个人博客,我的建议是:先做个能用的,再慢慢优化。完美主义是项目的大敌。
希望这个博客能坚持下去,也希望我的文章能帮到一些人。如果你有什么建议或者想交流,欢迎随时联系我!
最后,感谢你读到这里,这对我来说意义重大!