96SEO 2026-07-23 08:32 5
为站点添加亮暗模式切换组件,却在黑暗模式下遇到主题闪烁的问题,如图:
添加切换组件之前,已经做好了亮暗模式的获取。即通过 window.matchMedia') 获取信息,由于使用了 tailwindcss,可控制 document 节点的 'dark' 类名切换页面亮暗模式。

在初始化站点亮暗模式之前。还注册了对 document 节点 class 变化的监听,根据有无 'dark' 类名,将亮暗模式信息持久化储存。
代码如下这方面,
const getThemePreference = => {
if ) {
return localStorage.getItem;}
return window.matchMedia').matches
'dark'
: 'light';},const isDark = getThemePreference === 'dark';if {
const observer = new MutationObserver => {
const isDark = document.documentElement.classList.contains;localStorage.setItem;}),observer.observe(document.documentElement。{
attributes: true,attributeFilter:,});}
document.documentElement.classList;
在浏览器暗黑模式下进入页面页面已经初始化为暗黑模式。但 ModeToggle 组件的渲染引发了主题闪烁。怎么说呢,
import { Button } from '@/components/ui/button';import { Sun,Moon } from 'lucide-react';import { useState,useEffect } from 'react';type Theme = 'light' | 'dark';
const ModeToggle = => {
const = useState;useEffect => {
const isDark = document.documentElement.classList.contains;setTheme,},);useEffect => {
const docClassList = document.documentElement.classList;if ) {
docClassList.add;} else if ) {
docClassList.remove;}
},),const handleClick = => {
setTheme;},return (
);},不过,export default ModeToggle;
*分析一下执行流程*
*组件将 me 初始化为 light。*
*初次渲染,依次执行组件的两个 useEffect。*
* 是依赖项为空数组的 useEffect。此时页面已是暗黑模式,所以会执行 setTheme。*
*接下来执行依赖项为 me 的 useEffect。会执行 remove,将页面置为日间模式。*
*接下来第二次渲染。此时 me 值是 dark,所以执行 add 恢复页面至夜间状态。*
*于是不再把 me 初始值设置成 light,而是设置成 null* :
*只是又出现新问题...
&
[...
最终优选方案这方面,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback