前言
项目使用Nuxt3框架,在当前页面 http://localhost:3000/page1 刷新时,会报500错误,Cannot read properties of undefined (reading 'body')
报错意思
在尝试访问一个尚未初始化或不存在的 DOM 元素
原因
组件挂载未完成就执行DOM
操作,需要避免在 SSR
环境中执行DOM
操作
解决方案
- 如果项目不需要
SSR
,可以在nuxt.config.ts
配置文件中关闭SSR
,export default defineNuxtConfig({ ssr : false })
;
- 如果页面使用第三方组件,该组件会在挂载完成前操作
DOM
,可以使用ClientOnly
标签包裹有操作DOM
的组件,代表只在客户端渲染该组件; - 如果是普通情况:调用函数时有执行
DOM
操作,可以将函数放在mounted
生命周期钩子里或者利用nextTick
方法确保DOM
更新完成后再执行操作;