在 Reactjs 的 Class 组件中切换明暗模式时不相关的组件重新渲染
Irrelevant components rerendering when switching between light and dark modes in Class component in Reactjs
在我的应用程序中在深色模式和浅色模式之间切换会重新呈现与主题切换无关的页面其他部分。我还应该注意,我正在使用 React 和 redux saga 来观察主题。不确定此信息是否相关,但只是将其放在那里。当我从浅色切换到深色或从浅色切换到深色时,页面的某些部分会重新呈现,从而重置一些值。例如,我的应用程序是一个加密应用程序,我正在使用一个帮助文件,该文件在比特币值前面注入比特币符号,而不是默认的 $ 符号。现在切换主题后,比特币符号变为 $ 符号而不是比特币符号。我的猜测是用于符号检查的 util/library/file 在主题切换
后不会再次 运行
与 Redux-Saga 无关。这就是 React 的工作原理。当道具或状态发生某些更新时,它将开始重新渲染所有必要的组件。这并不意味着它会导致 Real DOM 重绘。它只是更新 VDOM.
Updating the VDOM doesn't necessarily trigger an update of the real DOM.
如果你想阻止特定组件的重新渲染,你可以在 React 中使用 Pure Components。
在我的应用程序中在深色模式和浅色模式之间切换会重新呈现与主题切换无关的页面其他部分。我还应该注意,我正在使用 React 和 redux saga 来观察主题。不确定此信息是否相关,但只是将其放在那里。当我从浅色切换到深色或从浅色切换到深色时,页面的某些部分会重新呈现,从而重置一些值。例如,我的应用程序是一个加密应用程序,我正在使用一个帮助文件,该文件在比特币值前面注入比特币符号,而不是默认的 $ 符号。现在切换主题后,比特币符号变为 $ 符号而不是比特币符号。我的猜测是用于符号检查的 util/library/file 在主题切换
后不会再次 运行与 Redux-Saga 无关。这就是 React 的工作原理。当道具或状态发生某些更新时,它将开始重新渲染所有必要的组件。这并不意味着它会导致 Real DOM 重绘。它只是更新 VDOM.
Updating the VDOM doesn't necessarily trigger an update of the real DOM.
如果你想阻止特定组件的重新渲染,你可以在 React 中使用 Pure Components。