3주차 개발일지

NakHyun Choi·2022년 9월 23일
0

먼저 뭘 배웠을까?
리액트 필수지식인

  • 컨포넌트

  • 상태

  • 속성

  • useEffect
    이다.
    간단하게 정리해서 컨포넌트는 화면에 있는 모든 구성요소
    상태는 컨포넌트가 가진 데이터
    속성은 값을 전달하는 거
    useEffect는 화면이 먼저 그려지고 나서 딱 한번 수행되는 메서드이다.

    절대 귀찮아서 그런게 아니라 이런 개념들은 구글에 잘 나와 있기 때문에 비중을 적게 주는 것이다. 이외에도 Expo를 이용해 상태바, 스택 네비게이션을 배웠다. 상태바는 앱 위에 있는 시간이나 배터리 정도를 나타내주는 녀석이고 스택 네비게이션은 화면 전환시 화면을 쌓아서 이동시켜주는 녀석이다. 코드를 보면 표현 하는 방법을 볼 수 있는데 Stack.Screen을 통해 원하는 .js 파일을 페이지화 시키고 Stack.Navgator로 책을 만들어준다.

    <Stack.Navigator
               screenOptions={{
                   headerStyle: {
                       backgroundColor: "white",
                       borderBottomColor: "white",
                       shadowColor: "white",
                       height:100
                   },
                   //헤더의 텍스트를 왼쪾에 둘지 가운데에 둘지를 결정
                   headerTitleAlign:'left',
                   headerTintColor: "#000",
                   headerBackTitleVisible: false
               }}
               
           >
    
               {/* 컴포넌트를 페이지로 만들어주는 엘리먼트에 끼워 넣습니다. 이 자체로 이제 페이지 기능을 합니다*/}
               <Stack.Screen name="MainPage" component={MainPage}/>
               <Stack.Screen name="DetailPage" component={DetailPage}/>
               <Stack.Screen name="AboutPage" component={AboutPage}/>
               <Stack.Screen name="LikePage" component={LikePage}/>
           </Stack.Navigator>
 페이지화는 뭔가 쉽게 말해서 책갈피를 만들어준다. 이런 느낌이다.
 암튼 페이지화 시킨 컴포넌트는 

navigation.navigate("DetailPage")

이 녀석으로 이동할 수 있는데 데이터를 줄 수도 있다.

/*
  {
		route : {
			params :{
				title:title
			}
		}
	}

*/
const { title} = route.params;

받을 때는 route를 통해서 데이터를 받아줘야 한다.
share과 Linking 또한 배웠다.
이 두녀석은 react-native에서 기본적으로 제공하는 녀석들이고 쉽게 기능을 넣을 수 있다.

마지막으로 숙제를 진행했는데 이해를 잘못해서 찜 화면만 구현하라고 한 것을 어떻게하면
딕셔너리 형태의 데이터를 저장할 수 있는 지까지 고민하다가 빙글 빙글 돌아버렸고 
filter 함수로 받아야 하나, 아니면 flag를 세워서 category처럼 찜을 누른 녀석에게 값을
줘서 그 값을 다시 가져와서 새로운 화면에 map으로 뿌려줘야 하는 건가?  그런데 그러면 state에 전체 데이터를 넣어야 하고 그러면 화면을 그릴 때마다 전체 데이터를 확인해서 filter을 통해 리스트를 만들고 flag가 세워진 데이터를 받는다. 그러면 너무 비효율적이지 않나?? 등등 여러 고민을 
해봤는데 할 수 없었다. 다만 깊이 고민하고 노력을 했다는 것에 의의를 두었다.

비록 문제를 잘못 이해해서 갖가지 생각에 빠졌지만 결국 원했던 그 내용은 다음 주차에 나갈 범위였다...
하핫.
profile
SuccessiveP

0개의 댓글