nuxt3 同构渲染的数据请求问题

同构渲染

所谓同构渲染,就是服务端构建页面并且渲染成html之后返回客户端,这里面的问题在于,同构渲染是需要获取动态渲染,然后返回静态页面的。

在服务端渲染前获得请求到的数据

nuxt3 官方推荐的方式是使用 useFetch 函数,相比于 axios,它只会进行一次请求,不需要去区分 服务端请求和客户端请求。

而在实际使用过程中,如果使用 async await 的方式 调用 useFetch 函数并获取数据。然后赋值给响应式对象,会报错。

我最初的做法,是在写在 onMounted 函数中,这样就变成了客户端请求,虽然可以拿到页面,但是这时候已经不是同构渲染了,不利于SEO。

经过不断探索和测试,解决办法其实很简单,那就是通过拦截器。

 上述代码,我在禁用了浏览器的js功能后,依然能够正常显示 v-for 的相关内容,查看页面结构,也确实存在相关div,说明服务器返回的就是已经渲染了动态请求的数据之后的静态页面。

当然,如果在项目中使用,应该是要进行必要的封装。

posted @   anch  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示