Development/ReactNative

[study] 240122

mefd 2024. 1. 22. 09:14
728x90

작은 단위 컴포넌트부터 만들기

Atomic design pattern

 : 작은단위부터 큰 단위까지 컴포넌트를 조합해 만들어가는 것 (Lego 조립과 비슷)


React-natived에서 자주 사용하는 hook

-useWindowDimensions // 디바이스별로 화면 크기를 조절할 수 있다.

export const ComponentA = (props) => {

   const {window, height}=useWindowDimensions();

   {…etc code}

}

 

-useBackHandler

npm install @react-native-community/hooks

 

-useAppState

npm install @react-native-community/hooks

 

-useNavigation, useRoute.   // navigation - 페이지 간 이동, route - 이동할 때 데이터를 들고 갈 수 있다

export const ComponentA = (props) => {

    const navigation = useNavigation();

    const routes = useRoute();

    

}

-useIsFocused, useFocusEffect

export const ComponentA = (props)=>{

    const isFocused = useIsFocused();     //boolean 값 반환

    useFocusEffect(useCallback(()=>{

    //focus가 되었을 때의 처리

}, [userId]));

}

 

-useScrollToTop : ScrollView를 최상단으로 올릴 때 사용

export const ComponentA = (props)=>{

    const scrollViewRef=useRef();

    useScrollToTop(scrollViewRef);

}

 

#react-use 

-useMount : component가 mount된 시점에 callback 호출

 

-usePrevious : state의 이전 값을 알아내고자 할 때 사용

Export const ComponentA = (props)=>{

Const [count, setCount] useState(0);

Const preCount = usePrevious(count);

}


Function component

함수의 호출 = render

const ComponentA = () => {}

 

render element

함수 호출을 하며 생긴 함수 내부의 변수, 함수 등은 모두 호출될 때마다 새로 할당하게 됨 

 

Memoization : 수행했던 연산 결과들을 어딘가 저장한 뒤 동일한 입력값인 경우 재활용하는 것

 

-useMemo

첫번째 인자 : 기억할 값을 리턴해주는 함수

두 번째 인자 : dependency array

 

export const ComponentA = (props) =>{

    const variableA = useMemo(()=>{}, [])

)

 

-useCallback

첫 번째 인자 : 기억할 함수를 리턴해주는 함수

두 번째 인자 : dependency array

 

export const ComponentA = (props) =>{

    const variableA = useCallback( () => {}, [])

}

 

//오래 사용하면서 메모리가 커지게 되는 경우가 많고,  앱이 일시정지 되는 경우도 있었는데, 메모리 절약에 도움이 될 수 있다.

728x90

'Development > ReactNative' 카테고리의 다른 글

[study] Style || 내비게이션 || 리덕스  (0) 2024.02.02
[study] mac 환경 세팅 중 만났던 에러 해결  (0) 2024.01.22
[study] 중복함수실행방지  (0) 2024.01.22
[study] 240122  (0) 2024.01.22
[study] swiper  (0) 2024.01.11