Getting started
Installation
Using yarn
yarn add atomic-stateOr with npm
npm install --save atomic-stateQuick start
Example: A simple counter app
states.ts
import { create } from 'atomic-state'
const count = create({
key: 'count',
default: 0 // initial value
})
// export only what's needed
export const useCount = count.useValue
export const setCount = count.setValueapp.tsx
import { AtomicState } from 'atomic-state'
import { useCount, setCount } from '@/states'
function Counter() {
const count = useCount()
return (
<div>
<h2>Count: {count}</h2>
<button
onClick={() => {
setCount(count + 1)
}}
>
Increase
</button>
</div>
)
}
export default function App() {
// Remember to wrap with the AtomicState root
return (
<AtomicState>
<Counter />
</AtomicState>
)
}Suggestions
When creating an atom, it's a good idea to indicate it will contain some state by adding State after its friendly name. However, you are free to use any convention you want
In the example above, the count state is stored in the count atom:
import { create } from 'atomic-state'
const count = create({
key: 'count',
default: 0
})
// export only what's needed
export const useCount = count.useValue
export const setCount = count.setValueYou can rename it useCount and use it directly
import { create } from 'atomic-state'
export const useCount = create({
key: 'count',
default: 0
})app.tsx
import { useCount } from '@/states'
export default function App() {
const [count, setCount] = useCount()
// etc
}💡
It's recommended that you don't use - in the atom key, as it is used to
differentiate stores internally
Last updated on August 8, 2024