How to avoid rerenders manually
useSnapshot optimizes re-renders automatically
This is the basic usage.
const Component = () => {
  const { count } = useSnapshot(state) // this is reactive
  return <>{count}</>
}
Reading state is valid but not recommended for general use cases
const Component = () => {
  const { count } = state // this is not reactive
  return <>{count}</>
}
This will not trigger re-render, but it doesn't follow the react rule like with any other global variables.
Subscribe and set local state conditionally
const Component = () => {
  const [count, setCount] = useState(state.count)
  useEffect(
    () =>
      subscribe(state, () => {
        if (state.count % 2 === 0) {
          // conditionally update local state
          setCount(state.count)
        }
      }),
    [],
  )
  return <>{count}</>
}
This should work mostly.
Theoretically, state can be changed before the subscription. A fix would be the following.
const Component = () => {
  const [count, setCount] = useState(state.count)
  useEffect(() => {
    const callback = () => {
      if (state.count % 2 === 0) {
        // conditionally update local state
        setCount(state.count)
      }
    }
    const unsubscribe = subscribe(state, callback)
    callback()
    return unsubscribe
  }), [])
  return <>{count}</>
}