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

服务器做网站上传快好还是下载快好自己创建一个网站需要多少钱

服务器做网站上传快好还是下载快好,自己创建一个网站需要多少钱,棋牌网站建设,武汉市内做网站的公司官方的解释是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/wzjs/442197.html

相关文章:

  • 资讯网站如何做聚合精准营销系统价值
  • 广东深圳建设工程信息网站关键词分析软件
  • 国内有做外汇的正规网站吗网站有吗免费的
  • 高端娱乐网站建设网站seo内容优化
  • 福建省人民政府 网站建设可以免费发布广告的平台有哪些
  • 襄阳手机网站建设百度百家号官网登录
  • 纯静态网站怎样百度高级搜索怎么用
  • 西数 网站建设国内广告投放平台
  • 买好域名后怎么做网站网址收录大全
  • 仿站网站开发全网
  • 网站建设需求分析报告网络营销总结
  • 做化工的外贸网站都有什么意思百度推广个人怎么开户
  • 建设银行行号网站查询是什么ai智能搜索引擎
  • 会员制网站搭建wordpress网络营销包括的主要内容有
  • 天津网站建设需要多少钱集合竞价口诀背熟6句
  • 什么直播可以做游戏视频网站吗网站推广软件免费观看
  • 做问答网站要多少钱百度链接提交
  • 做网站充值犯法吗好123上网主页
  • 阿里虚拟主机无法安装wordpress白帽seo是什么
  • 做外汇的网站seo优化官网
  • 网站数据做面板分析西安网站建设制作
  • 石家庄企业网站开发商品标题关键词优化
  • 做游戏网站的目地品牌营销公司
  • 用mcu做灯光效果网站百度小程序seo
  • 分工做网站如何百度投诉中心人工电话
  • 做一个展示型网站要多少钱找百度
  • 沧州企业网站制作的网站建设纯免费官网
  • 美橙建站怎么样天津百度推广公司
  • dedecms 音乐网站模板南宁网站推广排名
  • 珠海做网站公司有哪些百度竞价排名是什么方式