创建React-Native项目

打开终端输入react-native init ProjectName,这里的ProjectName可以改成你想创建的项目名称。然后有两种方法启动项目

1.从终端开启

在终端找到刚才创建的项目进入它的路径如cd ProjectName,之后启动它react-native run-ios即可。

2.从Xcode开启

在项目中找到以xcodeproj为后缀结尾的文件双击,即可在xcode打开项目,然后在xcode编辑器中点击启动按钮即可启动。

React-Native代码的执行逻辑

第一部分

导入reactNative包,以及必须组件。
AppRegistry:是通过Js运行reactNative应用的入口。
StyleSheet:ReactNative中的样式表,类似于css样式表。

第二部分

创建ReactNative组件,模板中使用的是ES6的语法

第三部分

通过StyleSheet.create()创建样式实例(在应用中只会创建一次,不用每次在渲染周期中创建)。

第四部分

注册入口组件AppRegistry:负责注册运行。
ReactNative应用的js入口。
registerComponent注册应用程序的入口组件,告知哪一个组件被注册为应用的根容器。

React-Native代码调试

common+R:重启项目
common+D:调取调试工具(如:热更新、js调试等)

React-Native的样式设置

样式可以分为外部样式和内联样式

外部样式

外部样式可以通过StyleSheet.create()进行创建,样式以对象形式展示。
例如:

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: ‘center’,
alignItems: ‘center’,
backgroundColor: ‘cyan’
},
welcome: {
fontSize: 20,
textAlign: ‘center’,
margin: 10
},
instructions: {
textAlign: ‘center’,
color: ‘#333333’,
marginBottom: 5
}
});

书写格式(与原生css的区别)

1、HTML中以”;”结尾,react以”,”结尾
2、HTML中key和value都不加引号,react中key必须使用驼峰命名法,value需要加引号
3、HTML中value是数值时,需要添加单位,react不需要,会自动适配

拼接样式

要设置多个样式的话需要用一个数组里面传递对象,在数组里面越往后面的优先级越高。
例如:

var LessonStyle = React.createClass({
render:function(){
return (
<View style={styles.container}>
<View style={[styles.top, styles.other, styles.common]}>
</View>
<View style={[styles.bottom, styles.common, styles.other]}>
</View>
</View>
)
}
});

FlexBox布局

我们在React-Native中使用Flexbox规则来指定某个组件的子元素的布局。Flexbox可以在不同屏幕尺寸上提供一致的布局结构。

弹性盒模型介绍

这里博主就不多做介绍了,网上有许多大神整理过它的相关资料,可以参考阮一峰的Flex布局教程来学习一下。

RN中FlexBox的用法介绍

1.React-Native里的FlexBox跟CSS3里的FlexBox属性名称写法不同,React-Native里全部是用驼峰式命名法。
2.React-Native里的FlexBox支持很有限,他是FlexBox的一个子集。
FlexBox布局一共要分三步:第一步父容器定义对其方式。第二部子项目放到父容器里面,子项目定义个性的定义方式。
flexDirection:“row” /“column”,定义FlexBox的排列顺序,React-Native里的默认排列是纵向排列的,

RN中的FlexBox与CSS中的FlexBox不同之处

flexDirection: React-Native中默认为flexDirection:’column’,在Web CSS中默认为flex-direction:’row’。
alignItems: React-Native中默认为alignItems:’stretch’,在Web CSS中默认align-items:’flex-start’。
flex: 相比Web CSS的flex接受多参数,如:flex: 2 2 10%;,但在 React-Native中flex只接受一个参数。
不支持属性:align-content,flex-basis,order,flex-basis,flex-flow,flex-grow,flex-shrink。

react-native 创建 ios 项目的更多相关文章

  1. Android Studio打开React Native创建的项目

    1.点击 Import project 2.找到项目下android文件夹,选择build.gradle文件,open

  2. 如何用 React Native 创建一个iOS APP?(三)

    前两部分,<如何用 React Native 创建一个iOS APP?>,<如何用 React Native 创建一个iOS APP (二)?>中,我们分别讲了用 React ...

  3. 如何用 React Native 创建一个iOS APP?(二)

    我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...

  4. 如何用 React Native 创建一个iOS APP?

    诚然,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 Reac ...

  5. React Native 系列(三) -- 项目结构介绍

    前言 本系列是基于React Native版本号0.44.3写的,相信大家看了本系列前面两篇文章之后,对于React Native的代码应该能看懂一点点了吧.本篇文章将带着大家来认识一下React N ...

  6. React Native(十三)——ios键盘挡住textInput

    渐入佳境 用React Native重构的项目也快接近尾声,剩下的就是适配ios的功能了.慢慢地也从中琢磨出了一点门道,于是就遇见了键盘遮挡textInput问题斑斑: 正常页面: android点击 ...

  7. React Native & Android & iOS & APK

    React Native & Android & iOS & APK https://play.google.com/apps/publish/signup/ $ 25 bui ...

  8. React Native & Android & iOS

    React Native & Android & iOS React Native & Android & iOS https://facebook.github.io ...

  9. React Native 在现有项目中的探路

    移动开发中,native开发性能和效果上无疑是最好的. 但是在众多的情况下,native开发并不是最优的选择.当需求经常改动的时候,当预算有限的时候,当deadline很近的时候,native开发的成 ...

  10. 利用react native创建一个天气APP

    我们将构建一个实列程序:天气App,(你可以在react native 中创建一个天气应用项目),我们将学习使用并结合可定义模板(stylesheets).盒式布局(flexbox).网络通信.用户输 ...

随机推荐

  1. Video for Linux Two API Specification revision0.24【转】

    转自:http://blog.csdn.net/jmq_0000/article/details/7536805#t136 Video for Linux Two API Specification ...

  2. dbgprint_Mine 调试输出

    void DbgPrintf_Mine(char*pszFormat,...) { #ifdef _DEBUG char szbufFormat[0x1000]; char szBufFormat_G ...

  3. java的unity单元测试

    import org.junit.After; import org.junit.Before; import org.junit.Test; public class TestUnit { publ ...

  4. 使用composer出现 Cannot find module (SNMPv2-TC) 等错误的解决方法

    Cannot find module (SNMPv2-TC): At line 10 in /usr/share/snmp/mibs/UCD-DLMOD-MIB.txt Cannot find mod ...

  5. iOS手势UIGestureRecognizer的使用失效问题

    问题:视图正常展示在界面中,父层是放在window上的,底部的一个控件的点击事件失效(所有设置都正常) 解决思路:虽然视图能够正常展示,但是发现父类视图的底部尺寸比子类的视图的尺寸小,也就是说上层视图 ...

  6. Python与数据结构[0] -> 链表/LinkedList[2] -> 链表有环与链表相交判断的 Python 实现

    链表有环与链表相交判断的 Python 实现 目录 有环链表 相交链表 1 有环链表 判断链表是否有环可以参考链接, 有环链表主要包括以下几个问题(C语言描述): 判断环是否存在: 可以使用追赶方法, ...

  7. 八. 输入输出(IO)操作6.文件与目录管理

    目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 Fi ...

  8. 集合框架(01)Collection

    1.集合:存储对象. 对象多了用集合存,数据多了用对象存 2.数组是固定长度,集合是不固定长度:数组是相同数据类型,集合是存储不同类型的对象 3 . 4.为什么会出现这么多的容器那,因为每一个容器对数 ...

  9. 弹出视图/弹出模态presentViewController与presentModalViewController

    一.主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等 ...

  10. poj 2324 Anniversary party(树形DP)

    /*poj 2324 Anniversary party(树形DP) ---用dp[i][1]表示以i为根的子树节点i要去的最大欢乐值,用dp[i][0]表示以i为根节点的子树i不去时的最大欢乐值, ...