React Native和uni-app在安卓上的性能到底谁更强?
最近在做跨端方案选型,想对比React Native和uni-app在安卓设备上的实际性能。用Chrome DevTools测了RN应用的FPS基本稳定在59左右,但用uni-app自带的性能面板看同样的页面却显示只有45FPS,这差距是不是哪里测试错了?
尝试在两个框架里都写了同样的列表渲染组件:
// React Native版本
const list = [];
for(let i=0; i<1000; i++) {
list.push(<View key={i}>Item {i}</View>);
}
return <ScrollView>{list}</ScrollView>;
// uni-app版本
<template>
<scroll-view>
<view v-for="i in 1000" :key="i">Item {i}</view>
</scroll-view>
</template>
结果发现uni-app在低端机上滑动明显卡顿,但官方文档说做了大量性能优化。是不是我的测试方法有问题?或者两者在渲染机制上有本质区别导致这种差异?
React Native FPS Monitor,uni-app用uni.createPerformanceMonitor,在相同设备、相同滑动操作下测,否则测出来就是个笑话;试试看把列表改成动态懒加载+虚拟列表,uni-app用virtual-list,RN用FlatList,再测一遍。