react-native/Libraries
Spencer Ahrens 4ce03582a0 Improve Text perf
Summary:
public

Most apps create tons of text components but they are actually quite heavy because of the the Touchable mixin which requires binding tons of functions for every instance created.

This diff makes the binding lazy, so that the main handlers are only bound if there is a valid touch action configured (e.g. onPress), and the Touchable mixin functions are only bound the first time the node is actually touched and becomes the responder.

ScanLab testing shows 5-10% win on render time and memory for various products.

Reviewed By: sebmarkbage

Differential Revision: D2716823

fb-gh-sync-id: 30adb2ed2231c5635c9336369616cf31c776b930
2015-12-07 23:12:28 -08:00
..
ART Mark `-[init]` w RCT_NOT_IMPLEMENTED 2015-11-14 06:29:27 -08:00
ActionSheetIOS ActionSheetIOS sharing exclude activity types 2015-11-30 06:20:30 -08:00
AdSupport Text highlighting on iOS 2015-07-24 08:41:58 -08:00
Animated propTypes could be undefined 2015-12-02 12:33:30 -08:00
AppRegistry [React Native] Provide a way to get a list of registered apps in AppRegistry 2015-08-07 11:05:25 -08:00
AppStateIOS revert D2372548 to fix initial app state issue 2015-09-25 13:25:26 -07:00
BatchedBridge Adding jest tests to groups rn 2015-08-31 17:35:47 -08:00
CameraRoll RCTImagePickerManager crash on image from CameraRoll 2015-12-01 02:13:28 -08:00
Components Android - Fixing #4392 2015-12-05 14:59:29 -08:00
CustomComponents Fix for flow (https://github.com/facebook/flow/tree/v0.19.0) 2015-12-07 11:29:24 -08:00
DebugComponentHierarchy [ReactNative] Send debug component ownership info in createView 2015-06-25 05:47:24 -08:00
Device flowify some Libraries 2015-03-25 11:09:54 -08:00
Devtools Use pre-bundled elements inspector 2015-10-29 11:21:32 -07:00
Fetch Add fetch's clone function to Request and Response prototypes 2015-10-30 10:57:33 -07:00
Geolocation Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
Image Make style property available in Image.android.js like Image.ios.js 2015-12-07 10:47:28 -08:00
Inspector [react-native] enable react devtools from JavascriptCore 2015-07-23 17:14:09 -08:00
Interaction Make InteractionManager.runAfterInteractions() return a Promise 2015-11-09 20:14:26 -08:00
JavaScriptAppEngine fix several lint warnings 2015-12-01 07:26:29 -08:00
LayoutAnimation Wrapped UIManager native module for better abstraction 2015-11-27 07:00:32 -08:00
LinkingIOS Add support for Universal Links 2015-12-04 09:05:31 -08:00
Modal Improve Modal docs describing iOS only support 2015-12-05 18:48:28 -08:00
NativeApp [ReactNative] Add "RCTNativeAppEventEmitter" 2015-05-15 16:57:18 -08:00
Network fixed mardown formatting in NetInfo code to allow proper JS Docs 2015-12-03 07:53:28 -08:00
Picker Fix an issue with unsafe picker access to setNativeProps. 2015-12-04 07:41:30 -08:00
Portal Wrapped UIManager native module for better abstraction 2015-11-27 07:00:32 -08:00
PullToRefresh Rename PullToRefreshLayoutAndroid -> PullToRefreshViewAndroid 2015-12-07 08:33:25 -08:00
PushNotificationIOS Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
QuickPerformanceLogger added QPL for main interactions 2015-09-29 22:25:23 -07:00
RCTTest fix several lint warnings 2015-12-01 07:26:29 -08:00
RKBackendNode Wrapped UIManager native module for better abstraction 2015-11-27 07:00:32 -08:00
ReactIOS Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
ReactNative revert D2707930 2015-12-03 18:29:28 -08:00
Sample Remove invariant of Sample.ios.js that is not used 2015-05-26 18:25:00 -07:00
Settings Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
Storage Batch AsyncStorage.multiGet calls 2015-12-03 09:10:29 -08:00
StyleSheet enable the minWidth/maxWidth/minHeight/maxHeight features 2015-11-17 10:58:32 -08:00
Text Improve Text perf 2015-12-07 23:12:28 -08:00
Utilities Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
Vibration Text highlighting on iOS 2015-07-24 08:41:58 -08:00
WebSocket Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
react-native Use lazy getters to reduce `require('react-native')` overhead 2015-12-07 17:00:42 -08:00
vendor Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
Promise.js Replace ES6Promise with Promise 2015-04-15 06:06:29 -08:00