如题,最近在使用nuxt写一个移动端的网站,需要做seo,初步研究使用了nuxt的静态站点部署功能,nuxt还有一个服务端渲染,官网上说需要有nodejs支持,我比较疑惑的是asyncData()这个方法,官网上是这么说的:
个人理解是要有一个node的服务器作为支撑,使用这个方法才比较有意义,而静态部署是可以脱离服务器单独运行的,那使用asyncData()来获取数据就没什么意义了,照样可以在mounted或者created等生命周期中获取数据,但是我看到有的静态部署的网站也在asyncData()中获取数据,就有点不是很理解,希望有路过的大佬帮忙解惑,十分感谢!
nuxt 的优势在于可以复用代码,于是你项目里的代码可以不经修改,就既能产生 SPA 的交互效果,还能生成渲染后的静态页面,加速用户使用和体验。为了达成这个效果,它需要运行在 node.js 环境里,当用户请求时,它就能先完成数据获取,渲染出完整的 html。
因为 nuxt 在 node.js 里执行,所以它其实没有浏览器里的各种东西,所以也没法很好的支持那些钩子函数。那么,用
asyncData()
获取数据在 nuxt 里是必要的。至于你说的,生成静态文件然后静态部署,看起来asyncData()
作用不大,其实是你的场景比较特别。我之前写过一篇使用 Nuxt.js 发布纯静态网站,感兴趣可以看一下。