Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

精读《setState 做了什么》 #122

Closed
ascoders opened this issue Jan 3, 2019 · 3 comments
Closed

精读《setState 做了什么》 #122

ascoders opened this issue Jan 3, 2019 · 3 comments

Comments

@ascoders
Copy link
Owner

ascoders commented Jan 3, 2019

本周精读文章是 how-does-setstate-know-what-to-do,我们只讨论 setState 时做了什么,虽然这并没有什么用。

虽然 React 让我们更聚焦于业务代码了,但还是有必要再结合 Hooks 一起看看 setState 到底做了啥~


精读《setState 做了什么》

@LeoEatle
Copy link

LeoEatle commented Jan 7, 2019

这个在我之前阅读源码的时候就注意到了,这种将形状定义渲染实现分离的概念,确实很惊艳。

其实想象一下是不是可以实现一个flutter的render,这样既能利用React的写法(&生态?),又能利用flutter跨平台优秀的渲染性能。

@ascoders
Copy link
Owner Author

ascoders commented Jan 7, 2019

@LeoEatle Flutter 系更好的体现了定义实现分离,但不方便利用 React 生态。

首先语言不一样。React 系渲染实现最好能在 JS 语言下做,换一个语言就比较难转了。

RN 这个实现本身从另一个角度实现了跨平台,就是用 JS 线程和 Native 交互,所以能利用 JS 代码写一些 Native 逻辑,但这本身并没有在安卓、IOS 平台实践定义实现分离(至少从都运行 JS 角度来看)。

而 Flutter 的 UI 基于 SKIA 层去做(SKIA 用 C 写的,所以本身跨平台),其他逻辑代码并没有用 JS Bridge 而是转成 Native 代码,因此与 UI 通信没有性能损耗。

Dart 语法和 JSX 类似,花那么大功夫转过去还要换语言转义,还不如直接用 Dart 方便。生态基本不用想了,坑一定远超想象。。

@liutian
Copy link

liutian commented Jul 13, 2020

react这种定义实现分离的思路还是太过简陋和生硬甚至太过人肉,推荐了解一下Angualr基于依赖注入是怎么做渲染引擎和平台无关的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants