В чем именно заключается преимущество использования StyleSheet.create()
сравнению с простым объектом?
const styles = StyleSheet.create({
container: {
flex: 1
}
}
Против
const styles = {
container: {
flex: 1
}
}
В чем именно заключается преимущество использования StyleSheet.create()
сравнению с простым объектом?
const styles = StyleSheet.create({
container: {
flex: 1
}
}
Против
const styles = {
container: {
flex: 1
}
}
Цитирование непосредственно из раздела комментариев StyleSheet.js React native
Качество кода:
Отодвигая стили от функции рендеринга, вы облегчаете понимание кода.
Наименование стилей - хороший способ добавить смысл к компонентам низкого уровня в функции рендеринга.
Спектакль:
Создание таблицы стилей из объекта стиля позволяет ссылаться на нее по идентификатору вместо того, чтобы каждый раз создавать новый объект стиля.
Это также позволяет отправлять стиль только один раз через мост. Все последующие использования будут ссылаться на идентификатор (еще не реализован).
Также StyleSheet проверяет содержимое вашей таблицы стилей. Таким образом, любая ошибка неправильного свойства стиля отображается во время компиляции, а не во время выполнения, когда фактически реализуется StyleSheet.
Принятый ответ не является ответом на вопрос ОП.
Вопрос не в разнице между встроенными стилями и const
вне класса, а в том, почему мы должны использовать StyleSheet.create
вместо простого объекта.
После небольшого исследования я обнаружил следующее (пожалуйста, обновите, если у вас есть какая-либо информация). Преимущества StyleSheet.create
должны быть следующими:
Там нет никакой выгоды. Период.
StyleSheet
более производительна Нет абсолютно никакой разницы в производительности между StyleSheet
и объектом, объявленным вне render
(это будет отличаться, если вы каждый раз создаете новый объект внутри render
). Разница в производительности - это миф.
Вероятно, происхождение мифа связано с тем, что команда React Native пыталась это сделать, но они не увенчались успехом. Нигде в официальных документах вы не найдете ничего о производительности: https://facebook.github.io/react-native/docs/stylesheet.html, в то время как исходный код заявляет, что "еще не реализован": https://github.com/facebook/реагируют родной/блоб/ведущий/Библиотеки /StyleSheet/StyleSheet.js # L207
StyleSheet
проверяет объект стиля во время компиляцииЭто неправда. Простой JavaScript не может проверять объекты во время компиляции.
Две вещи:
const containerStyle: ViewStyle = {
...
}