我为什么要使用React原生StyleSheet?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我为什么要使用React原生StyleSheet?相关的知识,希望对你有一定的参考价值。

我为什么要用这个:

const styles = StyleSheet.create({
    ...
});

而不是这个:

const styles = {
    ...
};

StyleSheet提供的属性对我来说似乎不太需要。

答案

Performance of rendering is the main advantage.

将常规样式对象传递到StyleSheet.create()时,模块将冻结对象并为每个对象分配一个ID。这允许避免在每次渲染过程中创建新的样式对象,并且它允许仅跨异步桥发送一次对象。在每次渲染时发送相同的样式对象可能会导致渲染性能下降。

从我所看到的,当设置组件的样式时,即使传递对象数组,它们也都工作(普通对象,StyleSheet对象)。

使用StyleSheet对象时的缺点

1)你不能像这样styles.myNiceComponent.backgroundColor === 'blue'进行比较

关于这个缺点的更多细节在这里:Why can't we check a style attribute of a react-native app?

2)根据某些标准(如屏幕旋转)重新计算样式需要一些额外的基础结构代码来确定要使用的样式。如果您使用简单的对象,则每次都可以重新计算它们。

以上是关于我为什么要使用React原生StyleSheet?的主要内容,如果未能解决你的问题,请参考以下文章

使用反应原生flexbox样式创建视图组件网格的Bug

反应原生导入

如何在另一个文件中使用该变量? (反应原生)

你如何适应原生的反应?

使用 Swiper 组件播放暂停问题反应原生多视频

动画移动x和y与软移动反应原生