react-data-owner-hook
Description
This package exports only one method: generateDataOwnerHook. This method takes object with initial values as input and returns hook function that will become owner of this structure. Works like useState but with state that persists between different components. So all consumers of this hook will share the same data.
Intention for this thing was to create some lightweight data management tool, something without reducers and all those @observer things.
Not for big projects.
Installation
$ npm i -s react-data-owner-hook
Usage
Step 1. Create hook
hooks/useFilters.ts:
import { generateDataOwnerHook } from 'react-data-owner-hook';
export interface Filters {
name: string;
status: bool;
someNumber?: number;
}
const useFilters = generateDataOwnerHook<Filters>({
name: '',
status: true,
someNumber: 0,
});
export default useFilters;
Step 2. Use Hook as usual
component/SomeComponent.tsx
import React from 'react';
import useFilters from 'hooks/useFilters';
const SomeComponent = () => {
const [status, setStatus] = useFilters('status');
const [name, setName] = useFilters('name');
const [someNumber, setSomeNumber] = useFilters('someNumber');
return (
...
);
};
Step 3. Use in more places. State will be shared
component/TotallyAnotherComponent.tsx
import React from 'react';
import useFilters from 'hooks/useFilters';
const TotallyAnotherComponent = () => {
const [status, setStatus] = useFilters('status');
return (
...
);
};