Vue以简单易懂的API、高效的数据绑定、灵活的组件体系,受到众多前端开发者的青睐。国内很多公司都在使用Vue进行项目开发。我们使用的简书是基于Vue的。我们知道SPA前端渲染有两个痛点:(1)SEO。搜索引擎爬虫很难捕捉到客户端呈现的页面元信息等SEO相关信息,从而使网站无法被用户在搜索引擎中搜索到。(2)用户体验。大型webApp打包后的js会很大,所以就有了模块加载,像require.js,异步请求。当webpack盛行时,它就变成了代码拆分。即便如此,受限于用户的设备,页面的初始渲染仍然可能非常缓慢,白屏的等待时间过长,这对于越来越挑剔的用户群来说是无法接受的。因此,对于那些展示宣传页面的,比如官网,必须进行服务端渲染(SSR)。Vue官方SSR文档的配置过于繁琐,需要有很好的node和webpack使用经验。对于前端初学者,官方推荐NUXT。NUXT是一个基于vue的服务端渲染框架,类似于React的NEXT。临时版本为0.10.6,其github主页显示1.0版本即将发布。$vueinitnuxt/starter//nuxt快速启动模板$cd//进入目录$npminstall//安装依赖$npmrundev//运行浏览器打开localhost:3000.目录结构pages文件夹:Nuxt会自动根据路径将pages文件夹下的*.vue文件路由到对应的路由中。默认是index.vue。我们不需要担心路由,你只需要根据相应的文件夹层次结构创建.vue文件即可。Nuxtjs会监控pages文件夹下的所有文件。当有文件变化时,浏览器对应的页面也会自动刷新,大大简化了我们的开发步骤。配置文件目录下的nuxt.config.js是我们唯一的配置入口,可以覆盖nuxt的默认配置。nuxt.config.js的整个配置如下:cache:该配置项允许你开启组件缓存策略以提高渲染性能。loading:该配置项用于自定义Nuxt.js使用的加载组件。css:该配置项用于定义应用程序的全局(所有页面都需要引用)样式文件、模块或第三方库。plugins:该配置项用于配置需要在根vue.js应用实例化之前运行的Javascript插件。head:这里可以写页面的meta信息.js应用程序是开发模式还是生产模式。env:该配置项用于定义应用客户端和服务端的环境变量。generate:该配置项用于定义每条动态路由的参数。rootDir:该配置项用于配置Next.js应用程序的根目录。srcDir:该配置项用于配置应用程序的源代码目录路径。transition:该配置项用于个性化设置应用过渡效果属性的默认值。vuex:Nuxt.js会尝试在应用的根目录下寻找store目录。如果该目录存在,它会执行以下操作:引用vuex模块,将vuex模块添加到vendors构建配置中,并设置Vue根实例项的存储配置。这些内容都可以在官方网站上找到。建议详细阅读官网文档和github仓库。为什么选择使用NUXT作为SSR?1、配置非常简单:我们只需要关注前端内容,不需要对服务端内容了解太多就可以完成服务端渲染。2、文档友好:开发文档熟悉易懂,非常详细,内容完整。3.无需考虑数据传输问题,nuxt会在模板输出前异步请求数据(需要引入axios库),进一步封装vuex4.内置webpack,无需配置webpack,nuxt会根据来配置相应的文件。5.无需编写路由,根据目录结构自动生成路由。总结框架还有很多地方需要优化,只能踩一个坑补一个坑。有时间的话,看看源码,改改源码。目前NUXT在大型项目中很少使用,更适合轻量级、展示型的网站。