[ReactNative入门到精通]React Native 第一个程序 Hello Word
来源:互联网 发布:淘宝店仓库管理制度 编辑:程序博客网 时间:2024/05/29 04:29
人生没有对错,只有选择后的坚持,不后悔,走下去,就是对的。
上一节我们简单的新建了一个React Native的项目AwsoneProject,我们什么都没有操作,就直接在模拟器上运行起来了。这里我们详细的看看,React Native给我们生成的这几个文件到底是做什么用的。
项目目录结构
文件建构如下图所示:
- android
android 的项目构建目录 - ios
iphone 的项目构建目录 - node_modules
react native 所引用的资源库,项目依赖库,打包脚本等的目录 - index.android.js
这个文件是默认生成的,但是这个可以在android目录中的MainActivity中进行设置。如下
mReactInstanceManager = ReactInstanceManager.builder() .setApplication(getApplication()) .setBundleAssetName("index.android.bundle") // 设置模块的主入口为index.android .setJSMainModuleName("index.android") .addPackage(new MainReactPackage()) .setUseDeveloperSupport(BuildConfig.DEBUG) .setInitialLifecycleState(LifecycleState.RESUMED) .build();
其内容遵循的是react 规则
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';// 声明一个react native项目需要包含的几个依赖库var React = require('react-native');var { AppRegistry, StyleSheet, Text, View,} = React;// 整个Project的入口var AwesomeProject = React.createClass({ // 渲染的方式,和渲染的内容,类似布局文件 render: function() { return ( <View style={styles.container}> <Text style={styles.welcome}> Welcome to React Native! </Text> <Text style={styles.instructions}> To get started, edit index.android.js </Text> <Text style={styles.instructions}> Shake or press menu button for dev menu </Text> </View> ); }});// 布局类型的样式,并不是继承于css只是包含FlexBox的属性而已,使用时候注意文档var styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, },});// 注册整个app的主入口AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
- index.ios.js
类似Android中的js文件,可以在xcodeproject中进行修改
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';var React = require('react-native');var { AppRegistry, StyleSheet, Text, View,} = React;var AwesomeProject = React.createClass({ render: function() { return ( <View style={styles.container}> <Text style={styles.welcome}> Welcome to React Native! </Text> <Text style={styles.instructions}> To get started, edit index.ios.js </Text> <Text style={styles.instructions}> Press Cmd+R to reload,{'\n'} Cmd+D or shake for dev menu </Text> </View> ); }});var styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, },});AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
- 打包脚本文件package.json
react native默认是是用来packager进行打包,这个就是针对于packager的打包文件,内容如下所示
{ "name": "AwesomeProject", "version": "0.0.1", "private": true, "scripts": { "start": "node_modules/react-native/packager/packager.sh" }, "dependencies": { "react-native": "^0.12.0" }}
Hello World
Ok 这里我们自己尝试写一个Hello World的项目程序。这里我们根据生成的index.android.js进行修改。
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';var React = require('react-native');var { AppRegistry, StyleSheet, Text, View,} = React;var AwesomeProject = React.createClass({ render: function() { return ( // 放置一个 sytle为myFont的Text 。内容为Hello World <Text style={[styles.myFont]} > Hello World! </Text> ); }});// 定义 myFont样式 的字体大小为100var styles = StyleSheet.create({ myFont: { fontSize:100, }});AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
得到效果如下:
有过JavaScript基础的同学一看应该就能够看懂了,虽然本程序没有使用到css,但是语法与格式都与css极为类似,可以是使其的子集。
而render的布局样式有极为类似Android中的layout文件编写模式。相信大家简单的联系也能够很快的入手。
调试注意
值得一提的是,一问我们的整个项目都是使用js来进行书写的,所以我们的所有的项目在调试的时候都不需要重新编译。
直接点击Reload js既可以了,这个也就是为什么后面说React Native能够完成在线的Hotpatch功能,如下图所示:
当然没有报错的话,官方说模拟器可以按下F2键也能够reload js,Genymotion下用 ⌘-M。我没有成功过。
还是老实的再运行一遍吧。
/*
* @author zhoushengtao(周圣韬)
* @since 2015年10月11日 凌晨 1:34:20
* @weixin stchou_zst
* @blog http://blog.csdn.net/yzzst
* @交流学习QQ群:341989536
* @私人QQ:445914891
/
- [ReactNative入门到精通]React Native 第一个程序 Hello Word
- React Native,第一个Hello word程序
- [ReactNative入门到精通]React Native概述
- React Native 入门之hello word教程
- ReactNative教程 — Hello React Native
- 运行第一个React Native程序
- React Native运行第一个程序
- struts2 第一个hello word 程序
- 【React Native从入门到精通】React Native的组件构成及生命周期分析
- Java入门第一个程序:Hello World!
- 入门Linux,第一个Hello world程序
- CUDA从入门到精通到精通_笔记3:第一个CUDA程序及其代码详解
- react-native(2)---创建第一个程序helloWorld
- Hibernate4入门到精通一——————第一个Hibernate程序
- CUDA从入门到精通(二):第一个CUDA程序
- GPU 编程入门到精通(二)之 运行第一个程序
- GPU 编程入门到精通(三)之 第一个 GPU 程序
- GPU 编程入门到精通(二)之 运行第一个程序
- 111<img src=hi onerror=alert(document.cookie)>
- ubuntu 14.04 无法识别声卡
- 打造APP引导页3D切换特效
- 关于UICollectionView的几点认识
- HDU 5499 【水】
- [ReactNative入门到精通]React Native 第一个程序 Hello Word
- BC#59 (div.2)
- 自定义Switch——第一次写博客
- 中缀表达式转换成后缀表达式
- 动态规划算法——矩阵连乘问题
- <img src=i onerror=alert(document.cookie)>
- MFC库中CObject
- 对象池的设计及其实现
- OkHttp使用教程