I have two pages index
and blog
and I want to manipulate the attribute of html
before the rendering of each page, such as setting <html>
to <html >
, so I implement a method initDOM()
and call it inside the vue mounted
hook function. When I use <a></a>
to navigate pages, everything works well. The function is:
initDOM() {
let htmlObj = document.getElementsByTagName("html");
htmlObj[0].setAttribute('class', 'dark')
}
However, when I use <nuxt-link></nuxt-link>
to navigate pages, the DOM tree is not initialized by my initDOM()
function. I found that it seems because when I use <a></a>
, the whole DOM tree is refreshed when going into a new webpage, but the DOM tree is not refreshed when using <nuxt-link></nuxt-link>
. Although replacing <nuxt-link>
by <a>
works well, the loading time is obviously longer than using <nuxt-link>
Any idea to solve this problem?
CodePudding user response:
OP solved the issue by using Pinia, so that it could have a successfully working dark mode.