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

微能力者恶魔网站谁做的建设网站地图素材

微能力者恶魔网站谁做的,建设网站地图素材,shopex网站,王烨画家zustand 是一个用于React应用的简单、快速且零依赖的状态管理库。它使用简单的钩子#xff08;hooks#xff09;API来创建全局状态#xff0c;使得在组件之间共享状态变得容易。 React学习Day10 基本用法 安装#xff1a;首先#xff0c;你需要安装zustand库。 npm insta…zustand 是一个用于React应用的简单、快速且零依赖的状态管理库。它使用简单的钩子hooksAPI来创建全局状态使得在组件之间共享状态变得容易。 React学习Day10 基本用法 安装首先你需要安装zustand库。 npm install zustand创建一个状态存储使用createStore函数来创建一个新的状态存储。 设置初始状态你可以提供一个对象作为初始状态对象的每个属性都将成为状态的一部分。 定义状态更新函数这些函数可以修改状态存储中的状态。 使用状态在组件中使用useStore钩子来访问和更新状态。 代码示例 以下是一个使用zustand的基本示例 store / user.tsx 中创建一个状态 import { create } from zustand;interface Store {count: number;inc: (num: number) void; } // 这里的 Store 表示 create 函数接受一个泛型参数这个参数是 Store 接口的类型。 const createUserStore createStore((set) {return {count: 0,inc: (num: number) {set((state) ({ count: state.count num }));},}; });export default createUserStore;在组件中使用这个状态 component / Son.tsx import React from react; import createUserStore from ../store/user; // 引入interface SonProps {data: number; changeFatherMoney: (data: number) void; }const Son: React.FCSonProps ({ data, changeFatherMoney }) {const { count, inc } createUserStore(); // 导出return (div style{{ border: 1px red solid }}div用户信息counter:{count}/divbuttononClick{() {inc(10);}}10/buttonp这里是子组件/p父亲的数据是{data}button onClick{() changeFatherMoney(data - 1)}用父亲一块钱/button/div); };export default Son泛型介绍 在TypeScript中Store 是一个泛型参数的表示方式。这里的 Store 表示 create 函数接受一个泛型参数这个参数是 Store 接口的类型。 泛型在TypeScript中是一种强大的方式允许你为函数、接口或类定义类型参数这些参数在定义时不必指定具体的类型而是在使用时指定。这样做可以提高代码的复用性和灵活性。 在你给出的示例中 interface Store {count: number;inc: (num: number) void; }const createUserStore createStore((set) {return {count: 0,inc: (num: number) {set((state) ({ count: state.count num }));},}; });这里的Store泛型规定了create的返回值类型返回的状态存储对象的类型而不是用来规定参数类型。 interface Store 定义了一个接口其中包含一个 count 属性和一个 inc 方法。createStore 是 zustand 的 create 函数它被调用时使用了泛型参数 Store。这意味着 create 函数将创建一个状态存储其形状state shape将由 Store 接口定义。createUserStore 是一个函数当调用时会返回一个符合 Store 接口的状态存储实例。 为什么在 Zustand 中使用泛型而不是接口 在 Zustand 的 create 函数中泛型不仅用于指定返回值的类型还用于定义函数内部 set 方法的参数类型等这比单独使用接口来定义返回值类型更具优势。 示例代码 import { create } from zustand;interface Store {count: number;inc: (num: number) void; }const createUserStore createStore((set) {return {count: 0,inc: (num: number) {set((state) ({ count: state.count num }));},}; });解释 泛型的作用 createStore 中的 Store 泛型不仅指定了 createUserStore 的返回值类型也规定了回调函数参数 set 的类型。set 函数的类型定义需要知道 Store 的结构以便 TypeScript 可以正确推断 set 中 state 的类型。 接口的局限性 如果只使用接口来定义返回值类型会失去对 set 函数类型的类型推断和约束。接口无法单独定义 create 函数返回的回调函数 set 的参数类型。 示例如果只用接口定义返回值类型 如果只用接口定义返回值类型无法涵盖 set 函数类型的约束 const createUserStore create((set: (fn: (state: Store) Store) void) {return {count: 0,inc: (num: number) {set((state) ({ count: state.count num }));},}; } as Store);这种方式缺乏泛型提供的灵活性和类型推断能力代码变得不那么优雅类型定义也不那么清晰。 总结 泛型用途广泛泛型不仅可以规定返回值类型还可以用于函数参数、类属性和方法、接口属性和方法、类型别名等。Zustand 中使用泛型的优势在 Zustand 的 create 函数中使用泛型不仅规定了返回值类型还涵盖了内部回调函数 set 的参数类型约束使代码更加类型安全和简洁。接口的局限性仅使用接口来定义返回值类型无法对函数参数类型进行全面约束失去了泛型提供的类型推断能力。 通过使用泛型你可以使代码更具通用性、灵活性和类型安全性特别是在处理复杂的类型结构时。 调试工具 npm i simple-zustand-devtools -D import create from zustand// 导入核心方法 import { mountStoreDevtool } from simple-zustand-devtools// 省略部分代码...// 开发环境开启调试 if (process.env.NODE_ENV development) {mountStoreDevtool(channelStore, useChannelStore) }export default useChannelStore 注意事项 zustand的状态存储是单一的意味着所有组件共享相同的状态副本。状态更新是响应式的组件会在状态变化时重新渲染。状态存储的创建应该是一次性的通常在单独的文件中进行然后被多个组件导入和使用。 zustand是一个轻量级的状态管理解决方案特别适合中小型项目或者需要快速设置全局状态的场景。
http://www.hkea.cn/news/14444270/

相关文章:

  • 迅速提高网站排名虚拟主机的概念和功能
  • 男女做那个那个的视频网站韩国建筑网站
  • wx网站开发北京朝阳区建设工作办公网站
  • windows搭建网站开发南皮做网站的
  • 网站建设实验报告手写珠海市建设工程信息网
  • 在线分析网站安康市住房和城乡建设局网站
  • 8免费网站建站能够做网站的资质
  • 重庆便民服务网站APP海外营销网站设计
  • 网站建设推广优化有哪些基本方法社交app网站开发
  • 响水专业做网站设计师个人网站
  • 超市型网站开发wordpress 自动排版
  • 都有哪些js素材网站wordpress 修改网页
  • 定制网站型网站开发黄页网站推广服务
  • 创建网站的流程有哪些湖南 seo
  • 制作网站图片app安装软件下载
  • 网站开发前后端工具组合广阳网站制作
  • 接网站开发哪里好上海网站备案公司
  • html5 手机网站导航条oppo手机商城
  • 洛阳网站建设制作公司主页网站
  • 大埔县住房和城乡规划建设局网站怎么查logo有没有被注册
  • 二手网站排名河北项目网
  • 腾讯云网站免费建设中山 照明 骏域网站建设
  • 制作静态网站制作做房地产用什么网站好
  • 企业网站建设费用的预算电脑配件经营网站的建设
  • 中国空间站和国际空间站对比山东省建设协会网站
  • 盐城网站开发市场公司官网域名怎么注册
  • 制作微信的网站衡水网站建设联系电话
  • 如何创建网站教程视频郑州优化网站
  • jsp源码做网站wap网站如何制作
  • 烟台百度网站排名永州网站制作