推荐内容IMESSGAE相关
Ionic PhoneGap 这类app的道理是,用webview来实现雷同原生的界面,也便是用h5写的代码是运转在webview里的。长处很较着 静态摆设(不必要每次经由过程操纵商铺的考核,特别是iOS,审核有时辰真的感觉两颗蛋不敷疼的。) 界面机动(用h5来写的界面要比原生代码灵活的多) 开辟敏捷(一套代码,iOS,安卓都能够跑;无论是安卓仍是iOS,用原生的代码实现类似webview的页面,结构甚么的都是很繁杂的一件事变) 一样,错误谬误也很明显 - 机能相对付较差(这一点在安卓上尤其明显,安卓的webview性能真的很差,并且安卓机型较多) - 数据处理本领较差,跑在webview里的步伐,而且JavaScript是单线程的,以是很难利用不少多少核多线程, - 和硬件组建的交互较差,比方相册,蓝牙,motion等。 React Native React native是facebook公司推出的一个app开发框架,facebook也有很多其余的框架,在这里都可以找到。 利用纯react native开发的时候,现实的开发说话是JavaScript和框架React。写一套代码,同时运行在多个平台上。

和上文提到的hybrid app最大的区分是 用React Native开发的时候,实际运行的都是原生的代码 今朝React Native支撑 >=Android 4.1 >= iOS 7.0 它的优点 可以动态部署,因为是用JS写的,并不需要编译,所以可以在运行期动态的从服务器下载,而且实行。 开发时代,点窜界面的时候,只需要Command+R,不需要每次修改都蛋疼的从新编译 支持和原生代码夹杂编程,所以,对于那些性能请求较高,数据处理复杂的页面,仍旧可以用原生的代码来实现。 若是你没有任何的JS和React底子 可以先看看,我以前的这篇JS和React的基础文章 本文终极的结果 本文的目标是实现一个从收集获取数据,加载到ListView,而后点击某一行可以跳转到详情页。
React Native情况搭建 由于本文偏重的是若何使用React Native举行开发,所以并不会细致讲授如何安置和搭建环境。可以参考民间文档,搭建很简略 官方文档链接 有几点提一下 最佳是Mac电脑,OS X体系,因为iOS运行环境需要OSX iOS目前需要XCode 7 + 安卓需要Android SDK,和模拟器 文档 对于React Native的文档,在这里你都可以找到,这个系列我不会翻译facebook的文档。能浏览英文文档是程序员的一项基本技能,可是我会在使用的时候简单提一下 建立一个工程 翻开终端,cd到想要的目次去,然后 react-native init LeoRNWeather 1 可以看到天生了一个LeoRNWeather的文件夹,这个文件夹的默许的文件以下 android //安卓的工程 index.ios.js //iOS的程序进口文件 node_modules // index.android.js //安卓的入口文件 ios //iOS的工程 package.json //全局的描写信息,本文就使用默认的了 1 2 3 4 5 6 对了我使用的IDE,是Atom 然后,可以手动打开 ios 目录下的XCode 工程,然后点击运行,如果能见到上面截图,代表运行乐成 入门 记着,React Native没有CSS,全部的实现都是JS的语法。 
当你打开index.ios.js的时候,大要能发明几个模块 导入的模块,要先导入才气使用 import React, { **** } from ‘react-native’; 1 2 3 款式布局界说,用JS的语法,由StyleSheet创建,此中样式使用了React的FlexBox,让布局变的非常简单 const styles = StyleSheet.create({ //* welcome: { fontSize: 20, textAlign: ‘center’, margin: 10, }, //* }); 1 2 3 4 5 6 7 8 9 视图组件,视图承继自Component,可以在文档上找到很多Components class LeoRNWeather extends Component { render() { return ( Welcome to React Native! ); } } 1 2 3 4 5 6 7 8 9 10 11 可以看看这一行,可以看到React的视图语法和H5类似,尺度的XML格局。 Welcome to React Native! 1 2 3 !!!!咱们删除这个文件里的全部内容,然后替换成React的气概代码 这时代码如下 import React, { AppRegistry, Component, StyleSheet, View, ListView, Text, } from ‘react-native’; var LeoRNWeather = React.createClass({ render(){ return ( 这是一个题目 ); } });
|