1. ReactNative 基础

/**

1. reactNative  反应式语言

2. 既拥有原生的用户体验,又保留React的开发效率

3. FaceBook研究

H5,Android,iOS

4. BAT的插件化,热修改  2015/9/15

主流React Native 技术比较有效

Android版本稳定更加火爆

可以使用javaScript和React跨平台开发

learn once,write everywhere(最具有魅力)

Web/iOS/Android -》Virtual DOM -> React(JS/JSX)对iOS底层组建进行包装,运行时系统

React Native提倡组件化开发,即提供一个个封装号的组件,组件相互嵌套形成新的组件。

追去极致的用户体验,实时的热部署

运行时和虚拟DOM对iOS底层进行了包装

5. support platform

iOS7,Android 4.1

6. 版本更新速度快,没有身后的javaScript基础,

a.功能 适中,交互一般

7. 配置环境

Homebrew 是一个资源管理器包,OS X的套件

ruby...

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

*/

/**

基本语法

1. jScript是由 ECMScript,javaScript和jScript

ES5, 最新ES6(某些浏览器不支持)

2. react Native中任何一个类可以通过注册一个组件,面向组件编程,任何一个类都能够通过组件进行注册.

2.1 从react框架中注册组件,这是一个固定的格式写法。 import为导入头文件,{标示需要注册的类型

import Rect, { Compoment } from ‘react‘;

2.2 对组册的组件 compoment样式的详细描述。指定需要注册哪些组件。

import {     //注册组件的类型

AppRegistry, //注册

StyleSheet,  //样式

Text,        //文本组件

View,        //视图组件

Image        //图像组件

TextInput,   //输入框的组件

} from ‘react-native‘;

3. react native中类的定义

//定义了一个类,它的类型为一个组件

class AHelloWorld extends Component {

//初始化方法,通过  render(){ } 对该组件进行渲染。

render(){   //相当于OC中的ViewDidLoad方法,加载视图

//通过return返回, 采用return(); 返回一个布局好的视图, 视图定义在()内。

return (

<View style={styles.container}>

<Text style={styles.weclome}>您号世界,</Text>

<Text style={styles.instuctions}> to get started,edit index.ios.js</Text>

<Text style={styles.instuctions}> Press Cmd+R to reload,{\‘n‘} Cmd + D or shake for dec menu </Text>

</View>

);

}

}

上述事例行中 <Text>Hello world!</Text>  在javaScript中嵌入的XML结构的语法,键程

//定义外部样式变量 ({代码块})    备注 ({})代表了一个封闭的代码块,在OC中为了将一个方法内部的实现拆分也可以使用此方法。这个代码快里可以简单的理解为一组模型对象,通过styles. 语法获取对应的对象。 当视图属性加载的时候会从对应的对象中以KVC的方式读区对应的value给视图设置响应的外观属性。有点点类似于HTLML5

const styles = StyleSheet.create({

container:{

flex:1,

jstifyContent:‘center‘,

alignItems:‘center‘,

backgroundColor:‘#F5FCFF‘

},

weclome: {

fontSize:20,

textAlign:‘center‘,

color:"#3333333",

marginBottom:5,

}

instructions: {

}

})

// 注意,这里用引号括起来的‘HelloWorldApp‘必须和你init创建的项目名一致

AppRegistry.registerComponet(‘AHelloWorld‘,() => AhelloWorld);

*/

/**

1.初始化项目

> cd iOS项目名称

react-native init BViewDemo

> 在appDleage中定义

//下面定义了一个jsCode的路径,我们可以将自己写的代码放在app本地通过bundle加载,也可以将其放在服务器端,通过联网后远程加载,这样既能够不占用app内存,同时也方便实时的进行热部署。通常这个方法都写在app didLaunchWithOptions方法中。这样便于程序启动的时候直接跳转到我们的react Native页面

NSURL jsCodeLocation = [NSURL URLWithString:@"htpp://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

RCTRootView* rootView = [RCTRootView alloc]initWithBundleURL:jsCodeLocaiton numduleName:@"BViewDemo initialProperties:nil launchOptions:lanchOptions"];

self.window.rootViewController = [UIViewController new];

2. JSX和组件的核心理念

React的核心机制是虚拟DOM(Document Object Model),可以在内存中创建虚拟的DOM元素,React利用虚拟DOM来减少DOM的操作从而提升性能,传统的创建方法 。

var newBox = docment.creatElement(‘div‘);

newBox.className = ‘box‘;

$(‘main‘).appendChild(newBox);

var newPic = document.createElement(‘div‘);

newPic.className = ‘pic‘;

newBox.appendChild(newpic);

var newImg = doucment.createElement(‘img‘);

new.src = ‘images/‘ + data.img[i].src;

newPic.appendChild(newImg);

var root=(

<div className="box">

<div className="pic">

<img src = "images/1.jpg"/>

</div>

</div>

);

3.View组件中常用的属性

UIView, android.view,或者网页中<div></div>组件, 左边列举项都代表着视图。

Flexbox:弹性布局组件

Transforms:动画属性

backfraceVisibility,,定义页面反转是否可见

elevation. 是否显示立体高度

*/

4. 组件与AppRegistery

上述代码中定义了一个名为HelloWorlApp的新的组件(component),并且使用了AppRegistry的内置模块进行了注册操作,在编写ReactNative应用时,肯定会写出很多新的组件.而App的最终界面,也其实就是各种样式的组合,组件本省的机构可以非常简单,惟一必须就是在render方法中返回一些用于渲染结构的jxs语句。

AppRegistry模块则是告诉ReactNative哪一个组件被注册为整个应用程序的根容器,你无须在此深究,因为一般在整个应用里AppRegistry.registerComponent这个方法只会调用一次,上面的代码已经包涵了具体的用法. 只需要将文件中的代码复制到index.ios.js或者index.android.js文件中运行。

时间: 2025-02-01 13:07:15

1. ReactNative 基础的相关文章

React-Native基础教程

React-Native牛刀小试仿京东砍啊砍砍到你手软 React-Native基础教程 *React-Native基础篇作者git *React-Native官方文档 *Demo 几个月前facebook推出了React Native框架,允许开发着使用javascript代码来实现iOS原生的应用,随后十月份安卓版的也相继问世,从此我们可以优雅的Learn once, write anywhere… 早在几年前开发者就开始使用javascript+html和PhoneGap来编写各式各样的a

react-native基础教程(1)

转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native-foundation-course/ React-native是Facebook的开源项目,它的口号是"Learning once,write anywhere",目的是统一的View的编写. 一.React-Native基本语法模板 'use strict';  =====>(严格模式) var React = require(

ReactNative基础教程

通过tutorial文档, 我们开发一个小的工程(ListView), 在Android和iOS使用相同的代码, 展示出一样的风格, 表明ReactNative开发的便捷. 显示效果 工欲善其事, 必先利其器. 开发环境Atom集成Nuclide. Atom的配置和插件存储在.atom文件夹下, 如果想重新使用Atom, 删除文件夹即可. 在开发过程中, 使用Atom集成Nuclide会特别卡, 原因不明, Facebook也没有给出解决答案. 也可以**暂时不安装**Nuclide. 或使用P

Weex&amp;ReactNative对比

weex开源有一段时间了,其实去年刚听说weex这个项目的时候,我就对它很敢兴趣,很大程度上是因为我自己对vue的喜爱.我从13年左右开始接触vue,14年开始熟悉这个轻量的框架,并慢慢的推荐给了身边的朋友,当我得知手淘的weex是基于vue的时候,就有了想了解一下的冲动.在weex开源之前,我刚好有几个月的时间一直在致力于ReactNative的优化改造,加上自己之前使用ReactJS的一些经验,对于ReactNative项目也算有了一些自己的见解.趁着weex开源了,赶在前几天,我花了两三天

【React Native开发】React Native配置运行官方例子-初学者的福音(8)

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50546194 本文出自:[江清清的博客] (一)前言 特别说明:本系列专题文章的系统环境是OS X,如果各位童鞋是Windows的话,出现运行安装等坑爹问题,还得重新排查解决哦~俗话说学习一样新东西的时候,例如这边我们要学React Native的组件使用,那么最好的学习资料就是官方提供的材料了,作作为开发人员最好的学习资料就是源码,幸好官方给我们提供了UIExpl

App动态更新技术框架Weex与React Native -- valen

工作原理: 大致基本类同,JS-Native桥和前端渲染框架,只是使用框架技术不一样: Weex 阿里内部早期研发的一个通过 JSON 数据描述 native 渲染的项目WeApp以及Vue.js这款优秀的前端开源MVVM框架和深度结合; https://github.com/weexteam/article/issues/32 React Native: http://www.jianshu.com/p/978c4bd3a759   Weex React Native: JS引擎 V8 JSC

Expo大作战--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo依赖,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981 [之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发] 相关文章: Expo大作战--什么是expo,如何安装expo clinet和xde,xde如何

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

ReactNative学习之Html基础

前言: React Native开发作为一种新型的移动开发方式,个人觉得App的一部分需求会逐步替换成这种方式,也是公司移动开发人员所必须掌握的一种开发技术,所以鉴于这种情况我觉得很有必要学习一下,特此开贴记录一下整个学习过程. 什么是HTML文件? HTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言”. 和一般文本的不同的是,一个HTML文件不仅包含文本内容,还包含一些Tag,中文称“标记”. 一个HTML文件的后缀名是.htm 或者是.html.