Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Android
- 스레드
- 코틀린
- 앱개발
- OS
- 프로세스
- cs
- 개발
- 디자인 패턴
- 액티비티
- reactnative
- MVVM
- Operating System
- 앱
- 운영체제
- 디자인패턴
- 안드로이드
- db
- 앱 개발
- CS지식
- 데이터베이스
- 리액트
- github
- 메모리
- 안드로이드 디자인 패턴
- 리액트네이티브
- React
- Kotlin
- 안드로이드 개발
- Database
Archives
- Today
- Total
Tech Log
scrollView / FlatList 본문
scrollView 와 FlatList 모두 화면에 많은 양의 데이터를 나타내고자 할 때 사용되는 컴포넌트이다.
공통점
- 데이터가 많아 화면을 넘어가려할 때 화면에 스크롤을 만들어준다.
차이점
- ScrollView
처리해야 할 데이터의 양이 적은 경우에만 사용
ScrollView의 경우 ScrollView에 속한 자식 컴포넌트들을 한 번에 렌더링한다.
따라서, ScrollView를 이용하여 많은 양의 데이터를 나타내려고 하면 속도와 성능이 저하된다.
한 번에 많은 데이터를 처리하려 하고 상당한 메모리를 잡아먹기 때문이다.
- FlatList
데이터의 길이가 유동적일 때/알 수 없을 때 사용
FlatList의 경우 ScrollView와 다르게 렌더링이 느리게 된다.
또한, 화면 밖에 있어 나오지 않는 항목들은 삭제한다.
한 번에 모든 데이터를 렌더링하지 않고 초기에는 적절한 양만 렌더링한다.
사용자가 Scroll을 움직일 때마다 추가적으로 렌더링하는 방식이다.
그렇기 때문에 메모리를 절약할 수 있고 성능 향상이 된다.
예제
- ScrollView
위 화면에 해당하는 코드는 아래와 같습니다.
import React from 'react';
import {
StyleSheet,
Text,
ScrollView,
} from 'react-native';
const Scroll = () => {
return(
<ScrollView>
<Text style={stlyes.main}>항목1</Text>
<Text style={stlyes.main}>항목2</Text>
<Text style={stlyes.main}>항목3</Text>
<Text style={stlyes.main}>항목4</Text>
<Text style={stlyes.main}>항목5</Text>
<Text style={stlyes.main}>항목6</Text>
<Text style={stlyes.main}>항목7</Text>
<Text style={stlyes.main}>항목8</Text>
<Text style={stlyes.main}>항목9</Text>
<Text style={stlyes.main}>항목10</Text>
<Text style={stlyes.main}>항목11</Text>
<Text style={stlyes.main}>항목12</Text>
<Text style={stlyes.main}>항목13</Text>
<Text style={stlyes.main}>항목14</Text>
<Text style={stlyes.main}>항목15</Text>
<Text style={stlyes.main}>항목16</Text>
<Text style={stlyes.main}>항목17</Text>
<Text style={stlyes.main}>항목18</Text>
</ScrollView>
)
}
export default Scroll;
const stlyes = StyleSheet.create({
main:{
paddingHorizontal:10,
paddingVertical:30,
textAlign:'center',
},
})
- FlatList
위 화면에 해당하는 코드는 아래와 같습니다.
import React from 'react';
import {
StyleSheet,
Text,
View,
FlatList
} from 'react-native';
const Flat = () => {
return (
<View>
<FlatList
data={[
{key: '항목1'},
{key: '항목2'},
{key: '항목3'},
{key: '항목4'},
{key: '항목5'},
{key: '항목6'},
{key: '항목7'},
{key: '항목8'},
{key: '항목9'},
{key: '항목10'},
{key: '항목11'},
{key: '항목12'},
{key: '항목13'},
{key: '항목14'},
{key: '항목15'},
{key: '항목16'},
{key: '항목17'},
{key: '항목18'},
]}
renderItem={({item}) => <Text style={styles.item}>{item.key}</Text>}
/>
</View>
);
};
const styles = StyleSheet.create({
item:{
padding: 10,
fontSize: 20,
},
});
export default Flat;
참조
'React Native' 카테고리의 다른 글
[React Native] iOS 폰트(Font-Family) 적용하기 (0) | 2022.06.06 |
---|---|
[React Native] M1 맥에서 React Native 개발 환경 구축하기 (0) | 2022.05.04 |
Component (The Basics) (0) | 2021.10.04 |
Comments