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

时间:2017-03-10 13:03:10

标签: react-native stylesheet

我为什么要用这个:

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

而不是:

const styles = {
    ...
};

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

1 个答案:

答案 0 :(得分:10)

渲染性能是主要优势。

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

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

使用StyleSheet对象

时,

缺点

1)您无法像styles.myNiceComponent.backgroundColor === 'blue'

那样进行比较

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

2)根据某些条件(如屏幕旋转)重新计算样式需要一些额外的基础结构代码来确定要使用的样式。如果你使用简单的物体,他们每次都可以重新计算。