当前位置: 首页 > news >正文

网站优化建设工作总结范文企业网站建设哪家公司好

网站优化建设工作总结范文,企业网站建设哪家公司好,北京 网站设计 地址通州,创意矿泉水瓶子设计官方的解释是useSyncExternalStore 是一个让你订阅外部 store 的 React Hook。😄官方就爱打马虎眼,这样说随能一下子明白它的作用,接下来我们就来仔细的讲解下它的作用和应用场景。 useSyncExternalStore 作为 React 18 引入的一个 Hook&…

官方的解释是useSyncExternalStore 是一个让你订阅外部 store 的 React Hook。😄官方就爱打马虎眼,这样说随能一下子明白它的作用,接下来我们就来仔细的讲解下它的作用和应用场景。

useSyncExternalStore 作为 React 18 引入的一个 Hook,主要用于订阅外部数据源,确保在并发渲染下数据的一致性。它主要用于:

  • 订阅浏览器 API(如 window.width)
  • 订阅第三方状态管理库
  • 订阅任何外部数据源

直接上例子:

  • 基本语法
const state = useSyncExternalStore(subscribe,  // 订阅函数getSnapshot, // 获取当前状态的函数getServerSnapshot // 可选:服务端渲染时获取状态的函数
);
  • 实战 浏览器网络状态
//useOnlineStatus hooks 
import { useSyncExternalStore } from 'react';export function useOnlineStatus() {const isOnline = useSyncExternalStore(subscribe, getSnapshot);return isOnline;
}function getSnapshot() {return navigator.onLine;
}function subscribe(callback) {window.addEventListener('online', callback);window.addEventListener('offline', callback);return () => {window.removeEventListener('online', callback);window.removeEventListener('offline', callback);};
}
  • 实战浏览器窗口宽高
// useWindowSize hooks
function useWindowSize() {const getSnapshot = () => ({width: window.innerWidth,height: window.innerHeight});const subscribe = (callback) => {window.addEventListener('resize', callback);return () => window.removeEventListener('resize', callback);};return useSyncExternalStore(subscribe, getSnapshot);
}// 组建中 hooks使用 
function NavComponent() {const { width, height } = useWindowSize();return (<div>Window size: {width} x {height}</div>);
}
  • 实战 切换主题
function createThemeStore() {let theme = 'light';const listeners = new Set();return {subscribe(listener) {listeners.add(listener);return () => listeners.delete(listener);},getSnapshot() {return theme;},toggleTheme() {theme = theme === 'light' ? 'dark' : 'light';listeners.forEach(listener => listener());}};
}const themeStore = createThemeStore();function useTheme() {return useSyncExternalStore(themeStore.subscribe,themeStore.getSnapshot);
}function ThemeToggle() {const theme = useTheme();return (<button onClick={() => themeStore.toggleTheme()}>Current theme: {theme}</button>);
}

 

注意事项

  1. 保持一致性

    • subscribe 函数应该返回清理函数
    • getSnapshot 应该返回不可变的数据
  2. 避免频繁更新

    • 考虑使用节流或防抖
    • 实现选择性订阅机制
  3. 服务端渲染

    • 提供 getServerSnapshot
    • 确保服务端和客户端状态同步
  4. 内存管理

    • 及时清理订阅
    • 避免内存泄漏

http://www.dtcms.com/a/518856.html

相关文章:

  • 河北固安县网站建设网页设计师网站
  • 阿里云网站实名认证jsp网站架设
  • 网站建设培训公司哪家好化妆品网站程序
  • php网站上传教程什么是搜索引擎
  • 网站建设有哪些公司好延吉 网站建设
  • 怎么建立网站免费的wordpress视频直播插件
  • 新的网站的建设步骤jsp网站开发书籍推荐
  • 5g互联如何取消网站备案建设工程人员查询
  • 网站建设方向搜索网页内容
  • 长沙生活网seo优化方式
  • 济南 制作网站 公司吗成都分类信息网站开发
  • 凡科网建设网站如何修改源代码一个公司做两个网站可以吗
  • 自助建手机网站免费一个完整的网站推广方案
  • 网站收缩栏做化工资讯的网站
  • 昆明企业网站开发公司昆山张浦做网站
  • 网站建设注意哪些内容你会回来感谢我的正能量视频
  • 网站开发 精品课程电子商务网站建设管理论文
  • 东莞教育网站建设公园网站建设
  • 企业网站asp模板重庆住房和城乡建设厅网站
  • 模板网站的缺陷乐清 网站建设
  • 商务类网站青岛网站推广公司
  • 安徽省工程建设信息官方网站网页设计颜色代码表
  • 建设网站需要些什么手续抖音电商培训
  • 网站相关知识域名解析ip138在线查询
  • c2c网站都有哪些班级网站 程序
  • 深圳公司黄页企业名录生哥seo博客
  • 网站策划方案目标公司网站邮箱怎么看接收服务器类型
  • 龙之向导外贸经理人网站以网站建设为开题报告
  • 制作网站流程深圳品牌设计公司有哪些
  • 江阴招聘网站建设学徒建站行业市场分析