คอมโพเนนต์ VirtualizedList จะดีที่สุดเมื่อรายการของคุณมีขนาดใหญ่มาก VirtualizedList ช่วยในการประสิทธิภาพและการใช้หน่วยความจำที่ดีขึ้น ขณะที่ผู้ใช้เลื่อน ข้อมูลจะแสดงต่อผู้ใช้
องค์ประกอบพื้นฐานของ VirtualizedList มีดังต่อไปนี้ &minuns;
<VirtualizedList data={DATA} initialNumToRender={4} renderItem={renderItem} keyExtractor={keyExtractor} getItemCount={getItemCount} getItem={getItem} />
คุณสมบัติ VirtualizedList ที่สำคัญ
อุปกรณ์ประกอบฉาก | คำอธิบาย |
---|---|
renderItem | รายการจากข้อมูลจะถูกเรนเดอร์ภายใน VirtualizedList |
ข้อมูล | ข้อมูลที่จะแสดง |
getItem | ฟังก์ชันที่จะดึงข้อมูลแต่ละรายการออกจากข้อมูล |
getItemCount | รับจำนวนรายการข้อมูล |
initialNumToRender | ไม่มีการแสดงผลเมื่อเริ่มต้น |
ตัวแยกคีย์ | คีย์เฉพาะสำหรับแต่ละรายการสำหรับดัชนีที่ระบุ |
นี่คือตัวอย่างการทำงานของ VirtualizedList
ตัวอย่าง:การแสดงข้อมูลโดยใช้ VirtualizedList
ในการทำงานกับ VirtualizedList ให้นำเข้าก่อนดังนี้ −
import { SafeAreaView, View, VirtualizedList, StyleSheet, Text } from 'react-native';
รหัสสำหรับ VirtualizedList มีดังต่อไปนี้ -
<SafeAreaView> <VirtualizedList data={DATA} initialNumToRender={4} renderItem={({ item }) => <Item title={item.title} />} keyExtractor={item => item.id} getItemCount={getItemCount} getItem={getItem} /> </SafeAreaView>
รายการเริ่มต้นที่เราต้องการแสดงเพื่อแสดงผลคือ 4 คุณสมบัติ renderItem ใช้เพื่อแสดงรายการบนหน้าจอ มันใช้ประโยชน์จากองค์ประกอบรายการที่กำหนดเองที่กำหนดไว้ดังที่แสดงด้านล่าง -
const Item = ({ title })=> { return ( <View style={styles.item}> <Text style={styles.title}>{title}</Text> </View> ); }
keyExtractor กำหนดคีย์เฉพาะสำหรับแต่ละรายการ
keyExtractor={item => item.id}
อุปกรณ์ประกอบฉาก getItemCount ได้รับจำนวนรวมของรายการที่จะแสดงต่อผู้ใช้ ตอนนี้มันเรียกใช้ฟังก์ชัน getItemCount ที่กำหนดไว้ดังนี้
const getItemCount = (data) => { return 100; } getItemCount={getItemCount}
อุปกรณ์ประกอบฉาก getITem มีไว้เพื่อรับข้อมูลที่จะแสดง โดยเรียกใช้เมธอด getItem และกำหนดไว้ดังนี้ -
const getItem = (data, index) => { return { id: index, title: 'test' } } getItem={getItem}
รหัสที่สมบูรณ์เพื่อแสดง VirtualizedList มีดังต่อไปนี้ -
import React from 'react'; import { SafeAreaView, View, VirtualizedList, StyleSheet, Text } from 'react-native'; const DATA = []; const getItem = (data, index) => { return { id: index, title: 'test' } } const getItemCount = (data) => { return 100; } const Item = ({ title })=> { return ( <View style={styles.item}> <Text style={styles.title}>{title}</Text> </View> ); } const VirtualizedListExample = () => { return ( <SafeAreaView> <VirtualizedList data={DATA} initialNumToRender={4} renderItem={({ item }) => <Item title={item.title} />} keyExtractor={item => item.id} getItemCount={getItemCount} getItem={getItem} /> </SafeAreaView> ); } const styles = StyleSheet.create({ item: { backgroundColor: '#ccc', height: 100, justifyContent: 'center', marginVertical: 8, marginHorizontal: 16, padding: 20, }, title: { fontSize: 32, }, }); export default VirtualizedListExample;
ผลลัพธ์