BoardList.presenter → Serchbar.container → Searchbar.presenter
BoardList.container → BoardList.presenter (props)
const { data, refetch } = useQuery<
Pick<IQuery, "fetchBoards">,
IQueryFetchBoardsArgs
>(FETCH_BOARDS);
const { data: dataBoardsCount, refetch: refetchBoardsCount } = useQuery<
Pick<IQuery, "fetchBoardsCount">,
IQueryFetchBoardsCountArgs
>(FETCH_BOARDS_COUNT);
const onChangeKeyword = (value: string) => {
setKeyword(value);
};
⬇ props
const getDebounce = _.debounce((value: string) => {
// props는 boardlist.presenter가 주고있음, boardlist.container가 presenter에게 props
props.refetch({ search: value, page: 1 });
props.refetchBoardsCount({ search: value });
props.onChangeKeyword(value);
}, 200);
전체 게시글 : 96 → 총페이지 10
검색결과 게시글 : 22 → 총페이지 3
import Presenter from "./Presenter.presenter"
export default function Container() {
return Presenter({count:123})
}
export default function Presenter(aaa) {
return <div>{aaa.count}</div> // props -> aaa
}
//함수의 선언
const getProfile = (aaa,bbb)=>( // el, index
console.log(`${aaa}는 ${bbb}입니다.`) // el, index
)
//함수의 실행
getPrfile("훈이",2)
setCount (Asdf ⇒ asdf +1)
props, prev, el은 다른 인자,매개변수로 선언해도 동일한 값을 출력하는 함수가 실행되지만 관례이기 때문에 마음대로 변경하면 협업 때 혼란을 일으킬 수 있음..!
global-state안에 있는 저장공간 : store
fetchPolicy
fetchUser로 철수,12세를 저장해서 Redux에 저장
→ 다음페이지에 갔을 때 fetchUser를 하는게 아니라 Redux에 데이터가 있는지 확인하고 있으면 가져오고,
없으면 요청
fetchPolicy의 기능
로그인 때 token 으로 로그인 되어있는지 모든 컴포넌트에서 확인하므로 필요