# react-simple-global-state-store-hook **Repository Path**: xiodra/react-simple-global-state-store-hook ## Basic Information - **Project Name**: react-simple-global-state-store-hook - **Description**: 使用react hooks实现的简单高性能全局状态管理 ,极简react.js全局状态管理库,就跟使用useState一样简单!使用简单,可能是使用方法最简单的全局状态管理工具! - **Primary Language**: JavaScript - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-09-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # react-simple-global-state-store-hook https://github.com/masx200/react-simple-global-state-store-hook 基于`react hooks` 和`EventTarget` 实现的极简全局状态管理 库 ,可以跨组件共享全局状态,拥有高性能 就像使用 `useState` 一样使用全局状态,非常简洁 # 使用简单,可能是使用方法最简单的全局状态管理工具! 使用步骤只有两步,初始化全局状态,组件状态与全局状态双向绑定 跟其他全局状态管理工具相比,使用这个库对于原有的代码不需要太多的修改 只管理状态仓库,修改全局状态的方法返回给组件内部调用, 就跟使用`useState`一样简单! # 跟 redux 对比,极为简洁!抛弃 redux! 基于 `react hooks`和`EventTarget` 实现 可以在任何组件中使用全局状态,所有组件最外层不需要包裹`context.provider` `redux`主要由`store`,`action`,`reducer`等等组成,过于庞大负杂,繁琐,组件太多无用的刷新,性能低下 ## 组件状态与全局状态双向绑定 组件状态改变时全局状态改变 全局状态改变时组件状态改变 ### 高性能 ,减少无用的组件刷新 不使用`context`刷新组件,而是使用`setstate`只刷新单个组件 如果使用`context`会导致大量组件的无用刷新 ## 仅仅使用 几十 行代码写成的极简 react 全局状态管理库! ### 演示网址 https://masx200.github.io/index.html#/react-simple-global-state-store-hook ## 局部安装 ```powershell cnpm install --save https://github.com/masx200/react-simple-global-state-store-hook.git ``` 或者 ```powershell yarn add https://github.com/masx200/react-simple-global-state-store-hook.git ``` # 用法 ```javascript import { useGlobalStore, initGlobalState, getGlobalStates } from "react-simple-global-state-store-hook"; ``` ### 函数`getGlobalStates`用来读取全局状态 ### 函数`initGlobalState`用来生成状态初始值,可以多次使用 参数为一个`object`,键名为全局状态名,键值为全局状态初始值 ### 函数`useGlobalStore`用来订阅全局状态,组件状态与全局状态双向绑定 第一个参数为一个`object`, 键名为全局状态名,键值为组件状态初始值 返回值是个`object` ## 基础语法 只能在 `react` 的函数式组件中使用! 以下示例使用了`es6`的解构赋值方法 就跟使用`useState`一样简单! ```javascript import React, { useState } from "react"; const [count, setCount] = useState(0); ``` 使用`react-simple-global-state-store-hook` ```javascript import { useGlobalStore, initGlobalState } from "react-simple-global-state-store-hook"; initGlobalState({ testnumber: "初始值数字", 全局状态testname: "初始值名字" }); function component() { const { 全局状态testname: [count, setCount] } = useGlobalStore({ 全局状态testname: "初始值" }); return
number: {number}