首页 > 其他分享 >react native使用zustand进行状态管理

react native使用zustand进行状态管理

时间:2023-10-11 15:35:30浏览次数:33  
标签:count zustand const react state str useStore native

1. 安装:

# NPM
npm install zustand

# Yarn
yarn add zustand

2. 创建store:

import { create } from "zustand";

const useStore = create((set) => ({
  count: 0,
  str: "",
  addCount: () => set((state) => ({ count: state.count + 1 })),
  setStr: (newStr) => set(() => ({ str: newStr })),
}));

export default useStore;

3. 组件内使用:

import {
  Button,
  View,
  Text,
} from 'react-native';
import { useStore } from "./store";
export default function Page() {
  const count = useStore((state) => state.count);
  const str = useStore((state) => state.str);
  const addCount = useStore((state) => state.addCount);
  const setStr = useStore((state) => state.setStr);

  const clickHandle = () => {
    addCount();
    setStr("a new string");
  }
  return (
    <View>
      <Text>{count}</Text>
      <Text>{str}</Text>
      <Button onPress={clickHandle} title="Click Button" color="#841584">点击</Button>
    </View>
  )
}

4. 外部文件中使用并获取更新状态

通过getState方法获取数据,通过subscribe方法订阅监听数据变更

import { useStore } from "./store";
const count = useStore.getState().count;
useStore.subscribe((newState) => {
  console.log(newState.count);
});

5. 更多

官方网址
文档地址

标签:count,zustand,const,react,state,str,useStore,native
From: https://www.cnblogs.com/lpkshuai/p/17757304.html

相关文章

  • React, chartGpt写的换肤方法
    constthemes={default:{backgroundColor:'white',textColor:'black',fontSize:'16px',},dark:{backgroundColor:'black',textColor:'white',fontSize:'18px'......
  • 竟然可以在一个项目中混用 Vue 和 React?
    React和Vue是前端开发中的两大热门框架,各自都有着强大的功能和丰富的生态系统。然而,你有没有想过,在一个项目中同时使用React和Vue?是的,你没有听错,可以在同一个项目中混用这两个框架!本文就来分享3个用于混合使用React和Vue的工具!#VeauryVeaury是一个基于React和Vue3的工具......
  • kali-Java版本管理-update-alternatives
    kali-Java版本管理-update-alternativeshttps://blog.csdn.net/qq_44029310/article/details/126086895列出软件的所有版本update-alternatives--config软件名update-alternatives--configjava的示例输出Thereare3choicesforthealternativejava(providing/usr......
  • 【React】React.memo与useMemo的区别和联系
    概述React.memo和useMemo都是React进行性能优化的手段,它们允许我们缓存需要进行高性能计算的结果,以便下次渲染页面时,返回缓存的值而不必重新计算函数,从而确保我们的应用程序运行的更快,避免不必要的开销。React.memo详解为什么memo(memoization的简写)在React中这么重要呢?在......
  • 【React系列】React.memo() vs useMemo()
    React.memo()与useMemo()之间有什么主要区别?性能优化是一只web开发中的一个重要讨论点。对于react团队同样如此,为了实现加速组件的渲染速度,采用“备忘录”的方式。所以这个时候就React.memo()和useMemo钩子就为了解决这个问题产生了。本文将比较和对比React.memo和useMem......
  • React Hooks之useRef详解
    ReactHooks之useRef详解最新推荐文章于 2023-08-2621:32:11 发布RayShyy于2023-02-1810:23:20发布2717收藏5分类专栏:React文章标签:react.jsHookHooksuseRefref版权React专栏收录该内容4篇文章0订阅订阅专栏......
  • 前端进阶系列——理解 React Ref
    前端进阶系列——理解ReactRef秦书羽杭州@朝夕光年​关注他 17人赞同了该文章Ref是Reference(引用)的缩写。一、前言在React中通常遵循“自上而下”的“单向数据流”。父组件和子组件的通讯只能通过Props。如果要修改一个子组件,我们要修改......
  • React跨路由组件动画
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:佳岚回顾传统React动画对于普通的React动画,我们大多使用官方推荐的react-transition-group,其提供了四个基本组件Transition、CSSTr......
  • 盘点KendoReact五大功能,让JavaScript数据网格构建更轻松!
    在本文中,我们将为大家分享KendoReact DataGrid中最受欢迎的五大功能:性能、数据组织、列和行交互、编辑自定义以及导出。有了这些功能,开发者大可不必从头开始构建JavaScript数据网格了!KendoUI是带有jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种Jav......
  • 如何编写难以维护的 React 代码?耦合通用组件与业务逻辑
    在众多项目中,React代码的维护经常变得棘手。其中一个常见问题是:将业务逻辑直接嵌入通用组件中,导致通用组件与业务逻辑紧密耦合,使其失去“通用性”。这种做法使通用组件过于依赖具体业务逻辑,导致代码难以维护和扩展。示例:屎山是如何逐步堆积的让我们看一个例子:我们在业务组件Pag......