我正在阅读React Native文档/教程,我想知道StyleSheet.create函数的重点是什么.
例如,本教程包含以下代码:
const styles = StyleSheet.create({
bigblue: {
color: 'blue',
fontWeight: 'bold',
fontSize: 30,
},
red: {
color: 'red',
},
});
Run Code Online (Sandbox Code Playgroud)
但我不明白它与之间的区别:
const styles = {
bigblue: {
color: 'blue',
fontWeight: 'bold',
fontSize: 30,
},
red: {
color: 'red',
},
};
Run Code Online (Sandbox Code Playgroud)
Aak*_*del 50
TL; DR随时可以使用StyleSheet.create().
总结一下:
从样式对象制作样式表可以通过ID引用它,而不是每次都创建一个新的样式对象.
它还允许仅通过桥发送一次样式.所有后续用法都将引用id(尚未实现).
您可能知道,通过网桥发送数据是一项非常昂贵的操作,会对应用程序的性能产生重大影响.所以,使用StyleSheet.create()你减少桥上的压力.
eth*_*eff 19
StyleSheet.create 不会再增加性能提升.
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29265#issuecomment-430783289
Nic*_*ico 11
这里有create的源代码.
create<T: Object, U>(obj: T): {[key:$Keys<T>]: number} {
var result: T = (({}: any): T);
for (var key in obj) {
StyleSheetValidation.validateStyle(key, obj);
result[key] = ReactNativePropRegistry.register(obj[key]);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我不是React的专家.我实际上从未使用它,但这是我的见解.它似乎create对您的密钥进行某种验证并将它们注册到React.
我认为你可以通过简单地不调用来跳过验证,create但我不确定究竟ReactNativePropRegistry.register是什么.
| 归档时间: |
|
| 查看次数: |
7828 次 |
| 最近记录: |