👩🏻🏫 공식 문서
key
(고유의 값, 약간 react-query의 quer-key 같은 느낌)와 default value
를 저장한다.export const initialState = {
textState : atom({
key: 'textState', // unique ID (with respect to other atoms/selectors)
default: '입력값',
}),
modalState : atom({
key : 'modalState',
default : false
}),
todoListState : atom({
key : 'todoListState',
default : []
})
}
import {useRecoilState} from 'recoil';
// 인자로는 atom을 넣고, return 값으로 읽을수 있는 read와 수정할수 있는 set을 뱉는다.
const [todoList, setTodoList] = useRecoilState(initialState.todoListState);
useSelector
같은 느낌이다. atom의 최신화 된 값을 받아온다.const todoList = useRecoilValue(initialState.todoListState);
key
(atom의 key)가 바뀌었을때를 감지해서 어떤 것을 실행 할 명령을 안에 작성한다. (파생된 상태의 상태변화를 일으킨다. ex) 변화 했을때 다른 key
에 해당하는 value를 조작해서 return 하여 최신화 시키는?? ( redux의 dispatch 후 순수 함수로 뷰에서 어떤 변화를 일으킬때 사용했던 느낌.)const charCountState = selector({
key: 'charCountState', // unique ID (with respect to other atoms/selectors)
get: ({get}) => {
const text = get(textState);
return text.length;
},
});