mirror of
https://github.com/status-im/react-native.git
synced 2025-01-15 03:56:03 +00:00
deba13f698
Summary: Moved the view creation & property binding logic out of RCTUIManager into a separate RCTComponentData class - this follows the pattern used with the bridge. I've also updated the property binding to use pre-allocated blocks for setting the values, which is more efficient than the previous system that re-contructed the selectors each time it was called. This should improve view update performance significantly.
33 lines
991 B
Objective-C
33 lines
991 B
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "RCTComponent.h"
|
|
#import "RCTDefines.h"
|
|
|
|
@class RCTShadowView;
|
|
@class RCTViewManager;
|
|
|
|
@interface RCTComponentData : NSObject
|
|
|
|
@property (nonatomic, copy, readonly) NSString *name;
|
|
@property (nonatomic, strong, readonly) RCTViewManager *manager;
|
|
|
|
- (instancetype)initWithManager:(RCTViewManager *)manager NS_DESIGNATED_INITIALIZER;
|
|
|
|
- (id<RCTComponent>)createViewWithTag:(NSNumber *)tag;
|
|
- (RCTShadowView *)createShadowViewWithTag:(NSNumber *)tag;
|
|
- (void)setProps:(NSDictionary *)props forView:(id<RCTComponent>)view;
|
|
- (void)setProps:(NSDictionary *)props forShadowView:(RCTShadowView *)shadowView;
|
|
|
|
- (NSDictionary *)viewConfig;
|
|
|
|
@end
|