@faasjs/react / createSplitedContext
createSplitedContext<
T
>(defaultValue
):Object
Creates a splited context with the given default value.
• T extends Record
<string
, any
>
The type of the default value.
• defaultValue: T
The default value for the split context.
Object
- An object containing the Provider and use functions.
Provider: (
props
) =>Element
• props
• props.children: ReactNode
• props.value: T
Element
whyDidYouRender:
boolean
use: () =>
Readonly
<T
>
Readonly
<T
>
whyDidYouRender:
boolean
const { Provider, use } = createSplitedContext({
value: 0,
setValue: (_: any) => {},
})
function ReaderComponent() {
const { value } = use()
return <div>{value}</div>
}
function WriterComponent() {
const { setValue } = use()
return (
<button type='button' onClick={() => setValue((p: number) => p + 1)}>
Change
</button>
)
}
const App = memo(() => {
return (
<>
<ReaderComponent />
<WriterComponent />
</>
)
})
function Container() {
const [value, setValue] = useState(0)
return (
<Provider value={{ value, setValue }}>
<App />
</Provider>
)
}