尝试将 类 定位并添加到 html、正文和 Vue/Nuxt 中的 __nuxt 元素时出错

Error when trying to target and add classes to html, body, and __nuxt elements in Vue/Nuxt

我在尝试使用 document.getElementsByTagName('html').classList add/remove 类 时遇到错误 "cannot read property 'classList' of null",对于组件上方天空中的任何其他高级元素也是如此土地,例如 body__nuxt.

运行 在具有 nextTick 功能的 mounted() 生命周期中。

也尝试检查 process.client,但也没有成功。

有什么想法吗?

谢谢:)

当你开始做 document.getElementById('html').classList 之类的事情,然后是隐含的 .classList.add().classList.remove() 时,你就会进入在 vue 之外操纵 dom 的强烈反对做法实例,这可能会产生意想不到的后果。

Vue 允许使用动态 classes 和 class 绑定,这应该提供更优雅的解决方案。

它在 vue 文档中 here

根据我上面的评论,您可能打算使用:

document.getElementsByTagName("html")[0]
document.getElementsByTagName("body")[0]

如您所知,存储的属性引用了常见的 HTML 标记,因此您无需进行任何查找:

document.documentElement  // <html>
document.body             // <body>