Skip to content

shallwe99/resso

 
 

Repository files navigation

🪢 resso

World's Simplest React State Manager

(Now Support React 18)

Reactive shared store of React. No extra re-render

npm GitHub Workflow Status Codecov npm bundle size npm type definitions GitHub

English · 简体中文


Introduction

resso, world’s simplest React state manager →

Install

yarn add resso # npm i resso

Usage

import resso from 'resso'; const store = resso({ count: 0, text: 'hello' }); function App() { const { count } = store; // destructure first, then use return ( <> {count} <button onClick={() => store.count++}>+</button> </> ); }

Demo

Edit resso

API

import resso from 'resso'; const store = resso({ count: 0, inc: () => store.count++ }); function App() { // store data are injected by useState, so please ensure to destructure first, // top level in a component (Hooks rules), then use, or may get React warning const { count, inc } = store; }

Re-render

const store = resso({ count: 0, text: 'hello', inc: () => store.count++, }); // No text update, no re-render function Text() { const { text } = store; return <p>{text}</p>; } // Only count update, re-render function Count() { const { count } = store; return <p>{count}</p>; } // No data in view, no re-render function Control() { const { inc } = store; return ( <> <button onClick={inc}>+</button> <button onClick={() => store.count--}>-</button> </> ); }

License

MIT License (c) nanxiaobei

FUTAKE

Try FUTAKE in WeChat. A mini app for your inspiration moments. 🌈

FUTAKE

About

🪢 World's Simplest React State Manager

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 84.3%
  • JavaScript 15.7%