某莔の异次元空间
建站小记
更新于:3 年前 标签:Web

经过一段时间的折腾,实践了各种方案,终于把博客fix.moe的第一个能看的版本 release 出来了。尽管只有最基础的一些功能,UI做得也略丑,但还是值得记念的。

这里我将简单分享一下建站的经过和一些使用的方案。

经过

直到上学期初,对于Web开发我还处于纯小白的状态。被刚结束的第二届中国高校计算机大赛-移动应用创新赛掏空身体后,决定暂缓对iOS开发的继续钻研,于是在较长一段时间里我在技术方面都处于走马观花的状态。直到有一天看到前辈们开发的基于Web的各种小游戏,都说H5相比App是先进生产力,即开始对其产生兴趣。经过一番学习,不满足于 2048小游戏 的我对个人博客有了企划。

以此为契机,在日常进行的博客开发之外,我还买了域名服务器,对Linux操作系统有了全新的认识,折腾了各种命令、研究了ApacheNginxDocker等。由于平时还有学业任务和一些琐碎的事务,整个开发过程断断续续。

开发过程

方案的进化

  • 纯静态
  • WordPress/Hexo
  • Node.js + EJS 模版引擎
  • Express.js + HTML5/CSS/JavaScript

到了寒假,时间变得充裕,开发过程有了新的进展。我接触并对比了前端三大框架ReactVueAngular,偏爱Vue的组件化和简单性,决定用它在之前方案的基础上进行重构。这里赞同某人说的一句话:博客不就是拿来重构的吗hhhh。

最终方案

  • Nuxt.js(Vue.js) + Express.js(Node.js) + MongoDB

方案优势

NoSQL 的使用之 MongoDB

说实话,MySQL属实太让我头痛了。。对于博客这种不需要太多业务逻辑的存储,NoSQL它不香吗?MongoDB从部署、使用到备份都非常方便,大大节省了时间成本。我甚至没用Mongoose框架,对增删改查等基本操作进行封装已经足够应对博客的所有任务要求。

为什么选择使用 Nuxt.js

SPA指 Single Page Application (单页应用),是目前主流的,基于CSR(Client Side Rending),但是存在一些不利于内容呈现型站点的缺陷,例如:

  • 页面体积大
  • 不利于 SEO 优化
    • 异步获取数据,搜索引擎难以抓到页面内容

Nuxt.js是基于Vue.jsSSR(Server Side Rending)框架,可以在牺牲部分服务器性能的同时获得以下优势:

  • SEO 优化
  • 客户端性能理想
    • 传统方式渲染 DOM 消耗性能
  • 首屏渲染快(针对大型应用)
    • SSR 是将渲染好数据的 HTML 返回客户端,所以客户端不用在向服务器发起异步请求来填充数据,这也同时有利于网络缓慢的用户

除此之外,Nuxt.js还可以通过 nuxt generate 这样的命令生成静态网页。

对于我个人而言,使用Nuxt.js还有一些其他优势:

  • Ajax请求不会过于直观
  • Nuxt.js提供了Nuxt/Express模版,支持和Express框架一起配合使用,无需新建项目来写后端

综上所述,何乐而不为呢?

写在最后

该博客今后视完成情况可能开源。

感谢一路在背后给予技术指点的 Hawkins Zhao 学长。

点评一下
Powered By AraComment
快来抢沙发吧~
次元物语

胜而不灭,霸而不辱,这才是真正的征服。

-「fate zero」