我看了很多评测、文章,都说 flutter 性能更好
我就觉得很好奇, 为什么这么多年,react-native 不把这个优点学习过来呢
还是说,rn 团队没有这么大的动力去做这个改造?
谢谢
1
Trello 2023-03-26 12:29:26 +08:00 2
就 flutter 那鹅心人的嵌套写法,我就用不下去。
|
2
WebKit 2023-03-26 12:49:09 +08:00 via Android
Flutter 不是把代码转原生,而是自己实现了一套 UI 组件的绘制渲染。
|
3
cornetCat 2023-03-26 13:08:56 +08:00
某种意义上 RN 比 flutter 更偏向你说的内容啊...
flutter 就是一个画布... |
4
okakuyang 2023-03-26 13:32:50 +08:00 6
两个东西。
react-native 的生态有一半是建立在 react 上的。 react 要用 js 运行时来执行,react-native 要操作真实原生 UI 控件。 优势也是在这里。 因为它是原生控件,如果系统 UI 框架更新了,react-native 可以很方便的利用这些改进。 相对的 flutter 的性能是因为它不需要一个 js 运行时来处理虚拟 dom 。 他这部分也是原生实现的,但是它并没有操控原生 UI 控件。 它是自己完成了触控逻辑处理,UI 排版绘制这些工作。 这就有了下面的问题。 它不会因为原生 UI 控件的改变,导致自己绘制出错。 相对的,它无法利用原生 UI 控件的新增功能。 它所有的新增功能都需要 flutter 生态自己提供。 |
5
hornorForGod 2023-03-26 16:24:54 +08:00 via Android
flutter 是自绘类似 qt,gdi 。react 是把代码转义成目标系统控件。
|
6
stabc 2023-03-26 18:09:02 +08:00
无脑 Flutter 吧,RN 那个新框架我测试过性能,渲染几百个 View 就开始拉夸
|
7
XCFOX 2023-03-26 18:30:50 +08:00
Flutter 真的性能更好吗?
基于 Flutter 的《哔哩哔哩漫画》在翻页和滚动时会有明显卡顿,这个问题是普遍存在的( https://github.com/flutter/flutter/projects/188)。 另外一个基于 Flutter 的《彩云小梦》甚至连高帧率都没适配,可以说是我手机上是最卡的 APP 。 Flutter 团队为此不得不抛弃 Skia 自制一个渲染引擎 Impeller( https://github.com/flutter/flutter/wiki/Impeller)。 反而 RN 使用原生组件在动画渲染上是没有太大问题的。 |
8
IvanLi127 2023-03-26 19:54:23 +08:00 via Android
我以前用的时候,一直不能理解为啥 flutter 在滚动上丢帧特别严重,我每次写都在怀疑是不是我做错什么了。。。
性能好到底是何啥比的。。。。 |
9
churchill 2023-03-26 20:11:08 +08:00
flutter 的原生能力是 dart 的 AOT 提供的,react-native 要想做必须先要实现一个有 AOT 能力的 JS 引擎,考虑到现有生态的兼容性,这可能是个很难完成的任务。
|
10
lxiian 2023-03-26 20:15:04 +08:00 via iPhone
flutter 之前 skia 在 ios 上表现一般,掉帧严重,在 android 上还好。 不过听说换引擎了,好久没用 flutter 了,不知道现在怎么样了
|
11
gogozs 2023-03-26 20:16:49 +08:00
你先搜索一下,编译型和解释型语言的区别
|
12
zqlcrow 2023-03-26 23:51:35 +08:00
说反了吧。
react-native 才是,原生代码实现。 所以你可以想一想,有多恐怖。 写的代码,层层处理,最终到原生。 flutter 才是不原生实现,自己绘制,所以解决了性能问题。 从本贴的回复可知,许多人根本连基础都没了解过,就开始指点江山了。 这甚至是,官网入门基础介绍的最前面的内容之一...... |
13
HugoChao 2023-03-27 00:14:57 +08:00
RN 写的的 discord 很流畅
|
14
DOLLOR 2023-03-27 00:39:56 +08:00 1
flutter 真没宣传中的那么美好,看上面大家的说法,看来不只我一个觉得 flutter 应用卡顿。
或许这种跨平台应用,本来就不该指望“性能”吧。 |
15
meteor957 2023-03-27 00:45:24 +08:00 via Android
无脑 RN
|
16
stabc 2023-03-27 01:32:56 +08:00
Discord 的整个框架是 RN 的,但核心聊天视图一直是调用原生组件,这也是它流畅的原因。即使是用户列表之类的简单列表,RN 也遇到严重性能问题,导致 Discord 成立了一个专门的”性能提升小组“来处理这个问题。
|
17
vivipure 2023-03-27 09:07:24 +08:00
热更新功能还是刚需
|
18
dreamramon 2023-03-27 10:28:05 +08:00
无脑 rn ,flutter 就算了吧,小团队没空成本搞那么多性能的的 workround 去 压榨性能。
rn 可以热更,可以快速迭代业务,性能可以压榨,但是初始版本就不算差,再配合边缘计算。 延迟=处理+网络来回+渲染 基于 js 的生态,边缘计算直接把处理和网络搞定,开箱可用。 flutter ,至少还不到开箱可用吧。。。 |