React Native 系列(二) -- React入门知识
前言
本系列是基于React Native
版本号0.44.3
写的,最初学习React Native
的时候,完全没有接触过React
和JS
,本文的目的是为了给那些JS
和React
小白提供一个快速入门,让你们能够在看React Native
语法的时候不那么费劲,有过前端开发经验的可以直接忽略。
什么是React
React
是一个JavaScript
框架,用来开发web
应用。Web
应用开发中,比较流行的有三个框架:
- react
- angular
- vue
从名字上,就能看到react native
是基于React
(都是Facebook
出品)。React
的设计思想是:
Declarative(交互式的)
应用都是基于状态的,应用会随着数据的变化切换到不同的状态,
React
将这种状态抽象为一个个View
,这样状态改变后,利用React
就在不同
的View
之间切换。这样,让代码更清晰可预测,也方便测试。Component-Based(基于组件的)
把管理状态的
View
封装成Component
,然后再把这些Component
组合到一起来实现复杂的UI
。Learn Once, Write Anywhere(一次编写,多处编译)
React
支持Web
开发,Server
开发(Node
),同样也支持本文提到的App
开发(React Native
)。
JSX
JSX
是JavaScript
语言的扩展,它并不改变JS
本身语法。使用起来类型XML
,React
会对JSX
的代码进行编译,生成JavaScript
代码,用来描述React
中的Element
如何渲染。
上篇文章创建的项目中,index.ios.js
里面的这段代码就是JSX
语法:
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
</View>
);
}
其中,
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
会被编译成
React.createElement(
Text,
{style: styles.welcom},
'Welcome to React Native!'
)
注意:使用JSX
,一定要在scope
中,能够访问到React
和对应的Element
。比如刚刚的例子,在代码的最上面看到了这样的import
:
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
TouchableHighlight
} from 'react-native';
tips: jsx编译结果在线查看
如果你的标签是空的,可以用/>
进行close
,比如:
<CustomComponent style={styles.welcome} />
大小写
JSX
对大小写开头是敏感的
- 小写字母开头会被认为是
html
内置的标签。比如div
- 大写字母开头会被认为是自己创建的或者
import
的component
所以,自定义的component
必须是大写字母开头
举个
React Native 系列(二) -- React入门知识的更多相关文章
- React Native 系列(一) -- JS入门知识
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- React Native 系列(二)
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信
http://blog.csdn.net/xiaominghimi/article/details/51586492 一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解R ...
- SpringBoot系列(二)入门知识
SpringBoot系列(二)入门知识 往期推荐 SpringBoot系列(一)idea新建springboot项目 引言 本来新建springboot项目应该放在入门知识这一章的,但是由于新建spr ...
- React-Native(三):React Native是基于React设计的
React Native是基于React js设计的. 参考:<React 入门实例教程> React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript ...
- React Native 系列(一)
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- React Native 系列(七) -- ListView
前言 本系列是基于React Native版本号0.44.3写的.几乎所有的App都使用了ListView这种组件,这篇文章将学习RN中ListView的平铺样式和分组样式. ListView平铺样式 ...
- React Native 系列(九) -- Tab标签组件
前言 本系列是基于React Native版本号0.44.3写的.很多的App都使用了Tab标签组件,例如QQ,微信等等,就是切换不同的选项,显示不同的内容.那么这篇文章将介绍RN中的Tab标签组件. ...
- React Native 系列(七)
前言 本系列是基于React Native版本号0.44.3写的.几乎所有的App都使用了ListView这种组件,这篇文章将学习RN中ListView的平铺样式和分组样式. ListView平铺样式 ...
随机推荐
- Python基础-类变量和实例变量
Python基础-类变量和实例变量 写在前面 如非特别说明,下文均基于Python3 大纲: 1. 类变量和实例变量 在Python Tutorial中对于类变量和实例变量是这样描述的: Genera ...
- Python Click 学习笔记(转)
原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...
- 读RCNN论文笔记
1. RCNN的模型(如下图)描述: RCNN相比传统的物体检测,还是引入传统的物体检测的基本流程,先找出候选目标物体,逐个的提取特征,不过rbg大神引入了当时炙手可热的CNN卷积网络取代传统上的HO ...
- Spring (3.2.4) 常用jar 包解析
Spring (3.2.4) 常用jar 包解析 基本jar包 spring-aop-3.2.4.RELEASE.jar spring-aspects-3.2.4.RELEASE.jar spring ...
- 一张图告诉你angular2所有知识点
忙活了半年,从angular2.0到现在angular4.2.从没AOT到有AOT.我想说,angular2的学习曲线真的有点陡峭.只能说,angular2是一个比较完整的框架,框架就是这样,一大堆条 ...
- PostGreSQL数据库安装教程
windows 10 x64 pro 1703安装postgresql-9.6.3-2-windows-x64.exe数据库,步骤如下: 第一:下载数据库安装程序,下载地址为:https://www. ...
- objc[20556]:Class JavaLaunchHelper is implemented in both xxx 警告处理
今天在Mac上对IntelliJ Idea 进行了升级 升级到2017.01后,运行程序时,出现以下红色警告: objc[20556]: Class JavaLaunchHelper is imple ...
- 关于"模块计算机类型与目标计算机类型冲突"的解决
问题描述:我的64位工程包含32位静态库之后报错(模块计算机类型"x86"与目标计算机类型"x64"冲突),将工程修改为32位之后,又报错(若干个无法解析的外部 ...
- ActiveMQ结合WebScoket应用例子以及介绍
一.ActiveMQ的介绍? 1.JMS基础概念 JMS(java Message Service) 即使java消息服务,它提供标准的产生.发送.接收的接口简化企业应用开发,它支持两种消息通信模型: ...
- 介绍一个全局最优化的方法:随机游走算法(Random Walk)
1. 关于全局最优化求解 全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值.上一篇文章讲解了一个求解局部极小值的方法--梯度下降法.这种方法对于求解精度不高 ...