一、问题描述
环境:Node 18.14.0,Nuxt 3.12.2 with Nitro 2.9.6
后台粉丝提问,能否在Nuxt3的页面中不要生成__NUXT_DATA__,因为里面包含了接口返回的数据,感觉数据暴露并且加大了页面的html内容的大小:
<script type="application/json" id="__NUXT_DATA__" data-ssr="true">
...
</script>
二、解决方案
其实在之前的文章《Nuxt3:探索useFetch是如何做到避免客户端重复请求》提到了__NUXT_DATA__
与Nuxt payload有关,所以是不建议将这个机制破坏的,在《How do I remove NUXT data in script tags from html pages in Nuxt.js 3?》一文的讨论中也提到不应该将它删除。
但如果既想要SSR,也真想删了它有没有办法呢?这里想到了一个办法可以尝试一下,那就是在服务端渲染出html的时候,对其进行修改。
这里就要提到Nuxt的生命周期钩子: