Nuxt去掉window.

编程入门 行业动态 更新时间:2024-10-24 04:38:22

<a href=https://www.elefans.com/category/jswz/34/1771106.html style=Nuxt去掉window."/>

Nuxt去掉window.

对于这个需求,我只能说鱼和熊掌不可兼得

不管怎么样都是有影响的,  希望各位少走弯路,看详解(在决定用不用)

第一种办法  修改渲染页面的源代码

修改文件路径: \node_modules\nuxt\node_modules@nuxt\core\node_modules@nuxt\vue-renderer\dist\vue-renderer.js

修改代码如下:

// 注释代码1, 禁止在页面初始化时添加window.__NUXT__代码
APP += `<script>${serializedSession}</script>`;  // 注释代码2   禁止在页面路由改变时更新window.__NUXT__代码
hash.update(serializedSession);
cspScriptSrcHashes.push(`'${csp.hashAlgorithm}-${hash.digest('base64')}'`);

去掉之后呢,你会发现,源代码里不在渲染了,随之也带了影响

影响

一: 服务端,获取store的值出现问题

: nuxtServerInit 函数中存储在store中的数据,在客户端会出现获取不到值的问题

三:去掉后你会发现,接口竟然暴露在了network里 

 

第二种办法   直接去掉script

下载一个工具包cheerio,这个工具包就像jquery一样,可以很方便的操作dom(我是这样理解的(~ ̄▽ ̄)~ ),关键就是在于如何通过这个工具找到window.__nuxt__然后移除它。

步骤一:安装cheerio

npm install cheerio

步骤二:修改nuxt.config.js

const cherrio = const cheerio = require('cheerio');
export default {
hooks: {'render:route': (url, result) => {this.$ = cheerio.load(result.html,{decodeEntities: false});this.$(`body script`).eq(0).remove();result.html = this.$.html()}}
}

额外影响(包含上边所有影响):

1. 在初始化页面的时候,会连续请求两次接口(第一次:服务端,第二次:客户端)

2. 在以打开新窗口的时候,会直接白屏(需要多点)

 

此文章不可用(遇到类似文章可以跳过,需要别的解决办法)

nuxt如何干掉window.__NUXT__这个script?

我们最后还是保留了这个,实在是没办法

如果有朋友解决这个问题,还请大佬指教一下

    

 

更多推荐

Nuxt去掉window.

本文发布于:2024-03-04 13:04:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1709339.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Nuxt   window

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!