12小时包你学会基于ReactMix框架的ReactNativeApp开发(一)Hello World!

ReactMixhttps://github.com/xueduany/react-mix自从昨天发布起来,得到了不少小伙伴的热捧,很高兴帮助大家解决了憋在心中很久的问题“如果我只会HTML,Css,Jquery”,我可以不用学习就会什么MVVM啦?会ReactNative啦?答案自然是没问题,在这里,只要你通过我们的ReactMix框架,你都可以在12小时内上手一个App开发工作。就让我们来试试吧。

首先申明,ReactMix的根基是在ReactNative的基础上实现了一层语法糖,帮助大家轻松方便的实现一行代码通吃H5,Pc,iOS,安卓,winphone的梦想,那么以大家接触最多的H5开发举例,首先我们要知道我们是基于什么绘制页面的?

对,基于HTML,那么在HTML里面最常见的元素有哪些?

答案:盒模型

分为块元素,行内元素,快元素好理解,就是div咯,行内元素,一般就是文本节点元素,比如span

还有表单元素,如输入框input,select下拉框,button按钮元素

基本有了以上这些,我们就可以撑起来一个页面的html来了,对吧。

在ReactMix中,我们也提供这些元素,唯一的区别是首字母是大写的,比如Div,Span,Input,Select,Button,为什么首字母要大写呢?因为首先在ReactNative里面是没有HTML这些元素的,这些元素是我们封装的近似的自定义组件,在ReactJs的规范里面,对于非系统提供的组件,必须首字母大写,实现区分,但是用法和属性和我们在HTML里面使用的这些元素是一样一样滴

Ok,那么第二个学习的点来了,ReactNative是基于JSX语法来实现模板的,什么叫做JSX呢?相信用过ReactJs的同学应该有所耳闻

类似这种,这就是JSX的语法,很想HTML的写法,就是属性的值,等于号后面如果是一个对象的话,基于{}大括号抱起来,可以写js代码

同学们看到图片中语法都是ES6+的语法,有很多新的js特性的语法糖,很多人可能会问了,如果这么写,那么老版本的浏览器支持吗?答案是肯定的,因为我们的ReactMix有一个同步翻译机制,可以把这些新语法风格的代码原封不动的翻译成ES5的代码,保证可以在老版本的浏览器正常的跑起来。同时也支持对于新语法的动态调试,就像这样

基于WebPack和sourceMap,我们依然可以很轻松直接调试es6语法的js代码

Ok,首先我们需要从github上checkout代码https://github.com/xueduany/react-mix,(最好是Mac系统,目前所有的bash脚本都是基于Mac系统写的)

然后执行执行install.sh,主要功能就是在ReactMix项目根目录执行npm install,和在ReactMix/reactnative子目录里面执行npm install

这里为什么会有一个独立的ReactNative子目录呢?

是这样的,因为ReactNative项目默认是不支持css格式的样式文件的,所以我们把Css目录放在了ReactNative目录外层,通过自动化编译工具React.css.build.js,来实现对于Css的同步翻译到ReactNative目录中

另外对于H5的代码也是同理,这部分代码在ReactMix/Web目录中,因为UI Component这块是为了节约带包脚本,就没有通过if else的逻辑区分,而是直接拆分成为了同名的两个不同实现的文件,分别放在了ReactNative目录和Web目录中,便于区分是H5使用还是App使用,但是接口保持一致

Ok,npm install完毕之后,我们打开ReactMix/reactnative/ios/native.xcodeproj,打开Xcode界面,点击run

你就可以直接在模拟器看到我们美丽的何穗姐姐了

下面我们来写第一个Hello World的页面

我们打开ReactMix/reactnative/index.js

清空全部代码,输入以下ReactJs代码

首先定义个继承与基类App的静态类叫做HelloWorld

class HelloWord extends App{

}

然后写一个render方法,返回一段JSX的文字HelloWord,并且加上样式

最后我们执行这个类的静态方法run(),看到效果

Done!Congratulation!

然后我们执行一下ReactMix根目录的WebPack同步编译一下,webpack –w –d

在浏览器打开ReactMix/web/index.html,就可以同步看到对应代码的H5同步翻译过来的版本,怎么样,是不是很神奇?第一个HelloWorld已经完成,总共用时不超过1小时~^_^

时间: 2024-12-15 09:06:54

12小时包你学会基于ReactMix框架的ReactNativeApp开发(一)Hello World!的相关文章

【Python】djangorestframework 基于django框架的接口开发

官网:http://www.django-rest-framework.org/#installation 下载:https://pypi.python.org/pypi/djangorestframework/3.3.3 参考:http://www.cnblogs.com/holbrook/archive/2012/02/19/2358704.html 参考:http://www.weiguda.com/blog/18/ 参考:http://blog.csdn.net/rongyongfeik

基于Qt的跨平台应用开发

1 Qt简介 Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能.Qt很容易扩展,并且允许真正地组件编程.基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西. 2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具.2012年,Qt被Digia收购.2014年4月,跨平台集成

ReactMix框架,让你实现一套js代码,基于ReactNative在H5,App都能完美跑起来,Write Once,Run Anywhere

ReactNative框架推出已经有一段时间了,相信很多小伙伴都在尝试实现Write Once, Run Anywhere的梦想,比如淘宝的ReactWeb等等,但是这些框架都局限于因为ReactNative本省的局限性,比如不支持CSS,不支持DOM操作,不支持选择器等等,而没有办法实现Js代码的全平台统一,现在通过全新的ReactMix框架,你可以让你的代码不仅可以在ReactNative上跑起来,实现安卓和iOS代码的统一,而且同样一份代码也可以在PC,H5上跑起来,到底有多神气?让我们来

半小时快速了解redis,基于ubuntu 12.04 + redis 2.8.9

一.什么是redis ? 其官方介绍是: Redis is what is called a key-value store, often referred to as a NoSQL database. Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server sincekeys can contain strings, 

SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现

到这里已经写到第12篇了,前11篇基本上把Spring MVC主要的内容都讲了,现在就直接上一个项目吧,希望能对有需要的朋友有一些帮助. 一.首先看一下项目结构: InfrastructureProjects:是抽取出的基础项目,主要封装了一些通用的操作. SpringMVC3Demo:就是管理系统所在的项目. WeiXinAPI:是之前做微信管理平台测试时封装一些操作,如果不需要把该项目移除即可. 注:项目的前端UI框架用的是国外的一个基于Bootstrap框架的开发的Demo,如不需要替换为

基于mina框架的GPS设备与服务器之间的交互

偶然得了一个谷米的车载GPS设备(gt02d),做为程序员的我,开始躁动了:想着做一个服务器程序,记录GPS设备上传的坐标,然后在地图上绘制每天的轨迹...想想还是挺有意思的(其实前两年还有一个失败的经历,自己还弄了一个"TA在哪儿"的Android版本的程序,就是登录后,每1分钟通过Http上传坐标,这样你的好友就可以看到你在哪儿,还专门让老婆坐公交,我骑车测试,结果反应太慢了.后来,没有了,再后来,好些软件就有位置共享的功能了,哈哈...),只不过,轨迹大部分时间还是三点一线(宿舍

PHP 基于laravel框架获取微博数据之一 模拟新浪微博登录

参考资料:http://www.csuldw.com/2016/11/10/2016-11-10-simulate-sina-login/http://blog.csdn.net/fly_leopard/article/details/51148904http://www.tuicool.com/articles/uIJzYff http://blog.csdn.net/u010029983/article/details/46364113等 模拟新浪微博登录是抓取新浪数据的基础,网上的参考资料

12小时超级马拉松赛记

8月初再次来到印度Pune出差,还是在TWU当讲师.这次的TWU是第51期,也是有史以来人数最多的一期.整个TWU的工作很多,非常忙,经常从早上8点忙到晚上8点.为了备战10月份的越野比赛,只有在周末才有时间拉个半马. 9月初从www.townscirpt.com网站上看到9月24日Pune会举行一场12小时超级马拉松,从晚上的7点钟跑到第二天早上的7点钟,心里顿时长了草.自己之前还没有参加过12小时超级马拉松,所以很想得到这样的一份体验.另外可以把这场比赛作为10月份越野赛的很好的一次赛前拉练

基于Struts1框架的简单工程搭建

新进入了某坑爹外包公司,所有的项目几乎都是用很古老的框架struts1,这里对struts温习下,并搭建了一个简单的登录工程. 1.Eclipse下创建一个Web工程,工程名称StrutsOneDemo,根目录修改为WebRoot(这样的Web工程可以在myeclipse下正常运行),该工程实现登录功能: 2.在lib中添加Struts1所需的jar包,这里使用的是1.3.10版本的jar包: 3.在src下创建三个包com.by.action.com.by.form.com.by.manage