经过一个多月的碎片时间堆积, 博客2.0版本面世啦
以下是博客的对比:
版本号码 | 前端 | 后端 | 服务端渲染 | 数据库 |
---|---|---|---|---|
博客1.0 | HTML+JQuery | koa2 | ejs渲染引擎 | MongoDB |
博客2.0 | Vue.js | express | Nodejs服务端渲染 | MongoDB |
旧版博客比较简单, 使用ejs渲染引擎编写好之后, 由服务端渲染出HTML, 再发送到前端, 缺点在于, 对于每个页面, 都需要编写一个ejs模板, 即使他们存在相同的部分(比如说sidebar), 所以当重复部分需要进行调整时, 不得不对所有的模板都进行调整
新版博客是使用当下流行的Vue.js搭建的Web单页面应用, 组件化特性完美解决ejs模板引擎带来的不便, 但单页面应用所带来的缺点也很明显:
面向这两个困难, 我需求到的解决方案
所谓预渲染, 就是在打包项目的时候对指定页面进行预渲染出相应的html文件, 并根据路由存放在相应的路径, 但存在着缺点: 若页面数据是动态变化的(比如知乎首页中的动态每次的不一样, 因为是根据网络请求来渲染页面), 则预渲染并不能解决问题;
本来Web单页面应用的机制是这样的: 客户端向服务端拿取html, 客户端执行html中的Javascript构建前端页面; 而Vue.js服务端渲染则是: 服务端将页面中Javascript执行完成后的html文件发送给客户端, 将本应该在客户端中完成的工作放到了服务端来进行, 因此更快, 而且解决了SEO的问题;
博客需要动态加载文章, 因此选择使用服务端渲染方案