React Native Style

  

  React Native不实现CSS而是依赖JavaScript来设置你的应用的样式,这是一个有争议的决定,你可以阅读这些幻灯片了解其背后的基本原理。

  

  申明样式:

 1 var styles = StyleSheet.create({
 2   base: {
 3     width: 38,
 4     height: 38,
 5   },
 6   background: {
 7     backgroundColor: ‘#222222‘,
 8   },
 9   active: {
10     borderWidth: 2,
11     borderColor: ‘#00ff00‘,
12   },
13 });

  StyleSheet.create 创建是可选的但是它提供了一些关键优势。 它通过转变值为引用内部表的普通数字来保证值是不可变且不透明的。把它放在文件的末尾, 你能确保它们只被创建一次并且不是每次都被渲染。

  所有的这些属性名和值都只是工作在网络中的一个子集。对于布局,React Native执行 Flexbox

  使用样式:

  所有的核心组件接受样式属性 <引用上面代码创建的样式属性>

1 <Text style={styles.base} />
2 <View style={styles.background} />

  

  它们也接受一组样式 <注意用数组包起来>

1 <View style={[styles.base, styles.background]} />

  

  行为与Object.assign类似:以防值冲突,这最右边元素的值将会优先而比如false、undefined和null等值将会被忽略。 通常的做法是在基于某些条件有条件的添加一些样式。

1 <View style={[styles.base, this.state.active && styles.active]} />

  最后,如果你真的需要,你可以在渲染中创建样式对象,但是不推荐这么做,最后把它们放到数组定义中。

1 <View
2   style={[styles.base, {
3     width: this.state.width,
4     height: this.state.width * this.state.aspectRatio
5   }]}
6 />

  样式传递:

  为了定制你的子组件的样式,你可以通过样式传递。使用View.propTypes.style 和 Text.propTypes.style确保仅仅样式被传递。

 1 var List = React.createClass({
 2   propTypes: {                        ===> 保证仅传递样式
 3     style: View.propTypes.style,
 4     elementStyle: View.propTypes.style,
 5   },
 6   render: function() {
 7     return (
 8       <View style={this.props.style}>
 9         {elements.map((element) =>
10           <View style={[styles.element, this.props.elementStyle]} />
11         )}
12       </View>
13     );
14   }
15 });
16
17 // ... in another file ...
18 <List style={styles.list} elementStyle={styles.listElement} />  ===> 传递样式到List

  总的来说,样式上面的语法不多,主要多看看View, Image, Text, Flexbox, Transform的样式支持。

时间: 2024-09-28 16:00:13

React Native Style的相关文章

react Native如何实现跨平台

react Native是通过虚拟DOM实现跨平台,运行时 将虚拟DOM转换为相应的web编码.android编号.ios编码进行运行的.   代码实现: 01.html: <!DOCTYPE html> <html lang="en"> <head>    <meta charset="UTF-8">    <script src="react.js"></script> 

菜鸟窝React Native 视频系列教程

菜鸟窝React Native 视频系列教程 交流QQ群:576089067 Hi,我是RichardCao,现任新美大酒店旅游事业群的Android Developer.15年加入饿了么即时配送BU,后负责蜂鸟众包Android端,期间引入react-native技术,作为国内react-native 与 Android混合开发的早期商业项目,具有一定经验,同时也是react-native开源项目reading(https://github.com/attentiveness/reading)

【REACT NATIVE 系列教程之五】NAVIGATOR(页面导航)的基本使用与传参

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2248.html 今天介绍一种应用开发中常用的负责页面切换及导航功能的组件:Navigator 一:Navigator 对于页面导航其实主要功能就是:每个页面都知道本身应该切换到哪个页面,并且切到的页面会记录从哪里来,如果要返回的话,知道返回到哪个页面.这一切都不需要再用逻辑管理!而且每个页面之间也可以进行参数传递,

React Native控件之PullToRefreshViewAndroid下拉刷新组件讲解

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50664323 本文出自:[江清清的博客] (一)前言 今天我们一起来看一下PullToRefreshViewAndroid下拉刷新组件讲解以及使用实例 刚创建的React Native技术交流群(282693535),欢迎各位大牛,React Native技术爱好者加入交流!同时博客左侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 该PullToRefr

React Native ——实现一个简单的抓取github上的项目数据列表

/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; var React = require('react-native'); var { AppRegistry, StyleSheet, Text, Image, View, TextInput, ListView, } = React; var GIT_URL = 'https://api.github.com/sea

React的React Native

React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React,组件化似乎不再步履蹒跚,有了React Native,前端的边界似乎广阔无边.而Webpack凭借它异步加载和可分离打包等优秀的特性,走在取代Grunt和Gulp的路上.而面向未来的ES6,模块化的支持似乎已成定局. 我们现在就可以打造自己的Webpack+React+ES6环境并且开始探索起来. 这篇文章就给还没走在这条路上的前端一

React Native专题-江清清

本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865  欢迎各位大牛,React Native技术爱好者加入交流!同时博客右侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 关于React Native各种疑难杂症,问题深坑总结方案请点击查看: Mac和Windows安装搭建React Native环境教程如下: Mac OS X版本:Mac OS X安装R

在Android应用中添加React Native支持

用android studio创建一个基本的android hello world程序 在项目根目录中通过npm向导生成package.json文件,在cmd中输入命令:npm init 在package.json文件中添加启动脚本"start": "node node_modules/react-native/local-cli/cli.js start" 添加react-native npm依赖,在命令行输入npm install react react-nat

[React Native] Animate Styles of a React Native View with Animated.timing

In this lesson we will use Animated.timing to animate the opacity and height of a View in our React Native application. This function has attributes that you can set such as easing and duration. import React, {Component} from 'react'; import {Text, V