Valentin Shergin
2716f53220
The New <Text> on iOS
...
Summary:
This is a complete rewrite of RCTText, the part of React Native which manages Text and TextInput components.
Key points:
* It's understandable now. It follows a simple architectural pattern, and it's easy to debug and iterate. Text flow layout is a first-class citizen in React Native layout system now, not just a wired special case. It also brings entirely new possibilities such as nested interleaving <Text> and <View> components.
* All <Text>-specific APIs were removed from UIManager and co (it's about ~16 public methods which were used exclusively only by <Text>).
* It relies on new Yoga measurement/cloning API and on-dirty handler. So, it removes built-in dirty propagation subsystem from RN completely.
* It caches string fragments properly and granularly on a per-node basis which makes updating text-containing components more performant.
* It does not instantiate UIView for virtual components which reduces memory utilization.
* It drastically improves <TextInput> capabilities (e.g. rich text inside single line <TextInput> is now supported).
Screenshots:
https://cl.ly/2j3r1V0L0324
https://cl.ly/3N2V3C3d3q3R
Reviewed By: mmmulani
Differential Revision: D6617326
fbshipit-source-id: 35d4d81b35c9870e9557d0211c0e934e6072a41e
2018-01-24 00:03:01 -08:00
..
2018-01-08 12:49:53 -08:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-09-12 12:53:59 -07:00
2017-08-17 18:45:01 -07:00
2018-01-08 12:49:53 -08:00
2017-08-30 17:16:17 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-10-18 19:33:30 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-09-26 23:45:48 -07:00
2017-07-07 14:36:01 -07:00
2017-12-06 17:34:26 -08:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-10-20 19:00:54 -07:00
2017-08-29 15:01:05 -07:00
2017-08-17 18:45:01 -07:00
2017-08-31 15:16:05 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-09-06 03:33:43 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2018-01-08 12:49:53 -08:00
2017-07-11 15:05:57 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-11-09 13:54:54 -08:00
2017-07-07 14:36:01 -07:00
2017-07-07 14:36:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2018-01-12 22:18:45 -08:00
2017-11-09 13:54:54 -08:00
2017-08-17 18:45:01 -07:00
2018-01-08 12:49:53 -08:00
2017-08-25 11:00:00 -07:00
2017-08-25 00:14:46 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-07-07 14:36:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-29 15:01:05 -07:00
2017-08-17 18:45:01 -07:00
2017-09-06 03:33:43 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-08-31 15:16:05 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-11-29 09:01:33 -08:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-10-20 19:00:54 -07:00
2017-10-20 19:00:54 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-29 15:01:05 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-10-18 19:33:33 -07:00
2017-10-02 23:00:03 -07:00
2018-01-18 14:01:50 -08:00
2018-01-09 12:32:53 -08:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-10-23 11:32:44 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-10-09 17:46:44 -07:00
2017-07-07 14:36:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-25 11:00:00 -07:00
2017-08-17 18:45:01 -07:00
2017-09-17 22:00:16 -07:00
2018-01-24 00:03:01 -08:00
2018-01-04 12:51:38 -08:00
2018-01-24 00:03:01 -08:00
2017-10-08 12:38:45 -07:00
2017-09-06 03:33:43 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-10-09 17:46:44 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-10-25 08:20:48 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-09-06 03:33:43 -07:00
2017-09-26 23:45:48 -07:00
2018-01-08 17:04:29 -08:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-08-17 18:45:01 -07:00
2017-05-08 11:31:19 -07:00
2017-08-17 18:45:01 -07:00