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

kkk*_*kkk 7 stylesheet react-native

我为什么要用这个:

const styles = StyleSheet.create({
    ...
});
Run Code Online (Sandbox Code Playgroud)

而不是这个:

const styles = {
    ...
};
Run Code Online (Sandbox Code Playgroud)

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

Flo*_*bre 11

主要优势似乎与性能有关:

从样式对象制作样式表可以通过ID引用它,而不是每次都创建一个新的样式对象.

它还允许仅通过桥发送一次样式.所有后续用法都将引用id(尚未实现).

其他优点可能是:

  • 道具StyleSheet.create()使用

    创建位置绝对和零定位的叠加层

  • StyleSheet 功能哪个

    将样式对象数组展平为一个聚合样式对象.

来源:https://facebook.github.io/react-native/docs/stylesheet.html

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

样式prop可以是一个普通的旧JavaScript对象.这是最简单的,我们通常用于示例代码.您还可以传递一组样式 - 数组中的最后一个样式具有优先权,因此您可以使用它来继承样式.

资料来源:http://facebook.github.io/react-native/docs/style.html#content

所以对于简单的样式,我会使用普通对象,对于复杂的样式,我会使用StyleSheet对象.

在使用StyleSheet对象时发现的唯一缺点是你不能像这样进行比较styles.myNiceComponent.backgroundColor === 'blue'

关于这个缺点的更多细节在这里: 为什么我们不能检查react-native应用程序的样式属性?