React Native · Flutter · uni-app · Taro — 同一页面多端渲染对比
import { View, Text, FlatList } from 'react-native'; const users = [ { id: '1', name: '张三', role: '前端开发工程师', tag: 'React' }, { id: '2', name: '李四', role: '后端开发工程师', tag: 'Node.js' }, { id: '3', name: '王五', role: 'UI/UX 设计师', tag: 'Figma' }, ]; const renderItem = ({ item }) => ( <View style={styles.card}> <Text style={styles.name}>{item.name}</Text> <Text style={styles.role}>{item.role}</Text> </View> ); export default UserList = () => ( <FlatList data={users} renderItem={renderItem} keyExtractor={item => item.id} /> );
import 'package:flutter/material.dart'; final users = [ User('张三', '前端开发工程师', 'React'), User('李四', '后端开发工程师', 'Node.js'), User('王五', 'UI/UX 设计师', 'Figma'), ]; class UserList extends StatelessWidget { build(context) { return <ListView> users.map((u) => <Card> <Text>u.name</Text> <Text>u.role</Text> </Card>) </ListView>; } }
<!-- user-list.vue --> <template> <view class="user-list"> <view v-for="u in users" :key="u.id" class="card"> <text class="name">{{ u.name }}</text> <text class="role">{{ u.role }}</text> </view> </view> </template> <script> export default { data() { return { users: [ { name: '张三', role: '前端开发工程师' }, ] }} } </script>
import { View, Text } from '@tarojs/components'; import { useState } from 'react'; const users = [ { name: '张三', role: '前端开发工程师', tag: 'React' }, { name: '李四', role: '后端开发工程师', tag: 'Node.js' }, { name: '王五', role: 'UI/UX 设计师', tag: 'Figma' }, ]; export default function UserList() { return ( <View> {users.map(u => ( <View className="card"> <Text>{u.name}</Text> <Text>{u.role}</Text> </View> ))} </View> ); }