<View> là container cơ bản — tương đương <div> web, không có default text rendering. Dùng cho mọi layout block (row/column).
<Text> là bắt buộc cho mọi chuỗi ký tự. Hỗ trợ numberOfLines, ellipsizeMode, font style, lồng <Text> con để inline format.
<Image source={{ uri }} /> (remote) hoặc <Image source={require('./logo.png')} /> (local). Phải set width/height rõ ràng cho remote — không có intrinsic size như HTML.
<ScrollView> cho nội dung ngắn, render toàn bộ children ngay lập tức. Không dùng cho list dài (>20 items) vì không virtualize → memory leak, scroll lag. Dùng <FlatList> thay.
Quy tắc nhanh: container không text → View; text → Text; ảnh → Image; nội dung scroll cố định → ScrollView; list dữ liệu động → FlatList.
<View> is the base container — equivalent to <div> on the web, with no default text rendering. Use it for any layout block (row/column).
<Text> is required for any string. Supports numberOfLines, ellipsizeMode, font style, and nested <Text> for inline formatting.
<Image source={{ uri }} /> (remote) or <Image source={require('./logo.png')} /> (local). You must set width/height explicitly for remote images — there is no intrinsic size like HTML.
<ScrollView> is for short content; it renders all children immediately. Do not use it for long lists (>20 items) — there is no virtualization, so memory leaks and scroll jank. Use <FlatList> instead.
Quick rule: text-less container → View; text → Text; image → Image; static scrollable content → ScrollView; dynamic list → FlatList.