안녕하세요!
custom font 써보다가 궁금한 점이 생겨서 질문 드려요
expo 문서에서 custon font 사용 예제는 폰트 파일 불러왔는지 체크하기 위해 componentDidMount()
메서드를 사용했는데,
create-react-native-app
으로 tab 템플릿 선택해서 프로젝트 만들면 lifecycle 없이 <AppLoading />
이랑 state
활용해서 로드 완료 되었는지 확인하는 방식을 쓰더라고요.
(리덕스 사용하는 방법도 있었어요 Using Custom Fonts in Expo : The Best Way)
export default class App extends React.Component {
state = {
isLoadingComplete: false
}
render() {
if (!this.state.isLoadingComplete && !this.props.skipLoadingScreen) {
return (
<AppLoading
startAsync={this._loadResourcesAsync}
onError={this._handleLoadingError}
onFinish={this._handleFinishLoading}
/>
)
} else {
return (
<View style={styles.container}>
<Image source={Images.partyJpeg} // 리소스 준비 되면 보여주기
style={{width: '10%', height: '10%', backgroundColor: '#fff'}}
// ...
(코드 전체)
lifecycle 언제 쓰는지를 찾아보면 성능 향상을 위해 쓴다고 본 것 같은데, 실제로 써본 적이 없어서 이런 경우에는 어떻게 리소스 로딩 상태를 관리(?)를 하는게 좋을지 궁금해요.
또 <AppLoading />
문서에 보면 _cacheResourcesAsync
라고 메서드를 구현했는데 프로젝트에 assets로 넣은 리소스도 해당이 되는 걸까요? 아니면 url로 불러오는 리소스만 캐시로 저장되는지도 여쭤보아요 ㅎㅎ