话说在前一段时候看了段时间的vuejs,但是我制作的网站应用对SEO的要求颇高,作为单页应用,对搜索引擎却是极度的不友好,所以就弃了,但是最近又看见了nuxtjs,作为vuejs服务器渲染的解决方案,又重新拾起了vuejs,但是经过使用才发现局限性颇大。

nuxtjs

nuxtjs是作为vuejs推荐的服务器渲染的方案,具有针对搜索引擎友好的特点,拥有完全的vuejs的高级特性。具体来说,比如使用expressjs+nuxtjs,其实相当于在服务器端运行的vuejs,expressjs作为RESTFULL api后端服务器,nuxtjs在服务器端就使用同步的获取操作,相当于本地无网络延迟的获取api的数据,然后进行服务器渲染,并且将渲染完成之后的数据返回给用户端,因为已经渲染完成,所以转换成了普通的html页面,所以对搜索引擎非常友好,并且又能使用vuejs的高级特性,使开发速度更上一个台阶。

npm安装包极多且巨大

官方推荐的有express+nuxt模板,这里就使用这个作为解说。
命令如下:

vue init nuxt-community/express-template <project_name>
cd project_name
npm install
npm run dev

随后访问localhost:3000就可以查看效果。
但是问题就在这里。
npm install安装的包极多且巨大,这对于一个小型网站应用来说得不偿失,如图。
nuxt包

正常expressjs应用安装的包也很大,但是也就20多30m,对于一个中小型应用来说还是可以接受。

所以nuxt缺陷一、依赖包极多且巨大。

编译之后的源码存在大量js

当使用了npm run build编译源码用于开发环境的时候,会生成大量的js,并且加载在渲染之后的页面中,为了支撑使渲染后的页面能够正常运行,如图:
-----2018-08-12---2.20.32

对于一个大型网站应用来说,这不算什么,但是对于一个中小型应用来说,完全没有必要,所以nuxtjs并不适用中小型应用的开发,此乃缺陷二。

结论

nuxtjs并不适合开发中小型应用,却很适合开发大型网站应用,可以大幅提高开发效率。