TypeError: Cannot read properties of null (reading ‘insertBefore‘)

在Vite4、Typescript和Vue3.2的SSR微应用重构过程中,作者遇到了浏览器报错TypeError,原因是服务端渲染时v-if为false的操作可能导致DOM元素不存在。通过将v-if替换为v-show,成功解决了问题,避免了对不存在DOM的操作,从而消除错误。
摘要由CSDN通过智能技术生成

目录

一、问题

二、解决方案


一、问题

最近在用Vite4+Typescript+Vue3.2+SSR微应用架构重构我的博客,在我构建上线之后发现浏览器上一直报如下的错误:

TypeError: Cannot read properties of null (reading ‘insertBefore‘);

TypeError: Cannot read properties of null (reading ‘emitsOptions‘);

二、解决方案

经过博主查阅报错分析,得出结论,是因为我这边是单页面SSR渲染,在服务端渲染是状态v-if = false,在 v-if 值为 false 时,如果操作了 v-if 控制的 DOM,可能会因为该 DOM 元素不存在而报错。

经过博主测试,将v-if改为v-show替换时,报错消失。完美解决,YYDS!

欢迎在评论区交流。

如果文章对你有所帮助,❤️关注+点赞❤️鼓励一下博主会持续更新。。。。

我的线上博客:富朝阳的博客

往期回顾

 css实现元素居中的6种方法 

Angular8升级至Angular13遇到的问题

前端vscode必备插件(强烈推荐)

Webpack性能优化

vite构建如何兼容低版本浏览器

前端性能优化9大策略(面试一网打尽)!

vue3.x使用prerender-spa-plugin预渲染达到SEO优化

 vite构建打包性能优化

 vue3.x使用prerender-spa-plugin预渲染达到SEO优化

 ES6实用的技巧和方法有哪些?

 css超出部分显示省略号

vue3使用i18n 实现国际化

vue3中使用prismjs或者highlight.js实现代码高亮

什么是 XSS 攻击?什么是 CSRF?什么是点击劫持?如何防御

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

富朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值