入职新公司,这边打算采用RN来写界面,所以学习一波这一块的知识。

  采用的是WebStorm来编译,据同事说,比他采用atom编译要多很多语法提示。
  下载地址:https://www.jetbrains.com/webstorm/
  安装之后需要破解:http://blog.csdn.net/zhalcie2011/article/details/57409082
  进入WebStorm,进行基础配置,诸如RN语法高亮等:http://blog.csdn.net/xiangzhihong8/article/details/52293896
  语法提示插件:https://github.com/virtoolswebplayer/ReactNative-LiveTemplate
  配置完成之后,RN相关Api、关键字等都有提示,算是比较友好了。

  RN项目基础配置    

import React, {Component} from 'react';

import
{
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';

import与iOS一致,是导入组件or面向组件,其中默认组件是不需要{}包裹起来的,比如说React,但是Component、Appregistry、Text等组件都是非默认组件,所以需要用{}包裹起来。

class MyApp extends Component {
render() {
var str = 'ppppppppppppppp';
return ( <View style={{backgroundColor: 'red', flex: 1}}>
<Text style={{flex: 1}}>{str}</Text>
</View>
)
}
}

上面的代码是自定义程序入口组件,类似于[[UIView alloc] init],当一个组件要显示的时候,就会自动调用render方法,渲染组件。extends关键字意味着继承自哪个类,这是ES6的语法,建议在看RN具体代码时,过一遍JS与ES6的语法。

我在学习的时候,有一点总是弄不清楚,不知道什么时候要加{},什么时候不加;也不知道什么时候加(),什么时候不加?

  1、包装对象的时候使用{},在JS中,对象就是这么写的 {x: 100, y: 100, method: function() {} }

  2、表达式都需要使用{},在上述的代码中,<View style={}.....    这就是一个赋值表达式,所以需要一个{},那么为什么{}里面还有{}呢?{flex: 1}这是个对象了,所以需要{}包裹起来

  3、变量也需要用{}包裹起来,比如上面的<Text style={{flex: 1}}>{str}</Text>中str是个变量,所以包裹起来显示,如果不包裹,那么text就是直接显示str。

  4、在包裹组件标签的时候,必须使用(),上面return () 里面的代码,就是组件标签。

var styles = StyleSheet.create({
font: {
fontWeight: 'bold',
color: 'green',
fontSize: 14,
},
});

    上面是样式表、组件外观等配置。也可以直接像html那般,写在组件里面,例如:<View style={{backgroundColor: 'red', flex: 1}}>。

    

AppRegistry.registerComponent('MyApp', ()=> MyApp);

注册程序入口组件,注册哪个组件、程序启动的时候就会自动去加载注册组件。

第一个参数:模块名称,随意填,但是必须与iOS模块名称一致,负责会报找不到组件入口的错误,这里的模块名是'MyApp'

第二个参数:函数,箭头函数ES6的语法,需要返回组件类名。

(箭头函数:=> 左边:函数参数,右边:函数返回值)

在学习过程中,没有感觉到RN的布局有什么困难的地方,就不记录了,下次更新prop与state、传值等知识。

React Native编译器的配置以及基础知识的更多相关文章

  1. 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  2. 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

    第25章      DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...

  3. Mac电脑配置IOS React Native开发环境配置笔记

    React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...

  4. windows 下android react native详细安装配置过程

    写在前面: 在网上搜了很多安装配置文档,感觉没有一个真的跟我安装的过程一模一样的,东拼拼西凑凑,总算是装好了,我不会告诉你,断断续续,我花了两天时间...一到黑屏报错就傻眼,幸好在react群里遇到了 ...

  5. 深入浅出React Native 1: 环境配置

    该教程主要介绍如何用react native来开发iOS,所以首先,你需要有一台mac,当然黑苹果也是可以的~ 创建一个react native的项目只需要安装以下五个组件~~(但....坑爹的是,不 ...

  6. LAMP配置课程基础知识详解

    听了一天的课程,我本人对这个还是很感兴趣的. [root@localhost~]#     root 用户名 localhost 本地 ~  家目录 不同用户不同 #当前用户是管理员 $当前用户是普通 ...

  7. React Native环境配置和简单使用

    # 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会 ...

  8. Webstorm配置运行React Native

    Webstorm配置运行React Native 1.选择配置 2.选择npm,设置package等参数 3.添加拓展工具 4.配置拓展工具(核心啊) 5.运行测试,ok的.

  9. React Native iOS环境搭建

    前段时间React Native for Android发布,感觉React Native会越来越多的公司开始研究.使用.所以周六也抽空搭建了iOS的开发环境,以便以后利用空闲的时间能够学习一下. 废 ...

随机推荐

  1. 版本控制工具svn的安装与简单使用

    版本控制工具多用于多人协作开发项目中,这不同于个人开发项目,想把自己代码怎样放置都可以,而且删除了代码很难查找. 版本控制工具类似于个人处理钱的过程,放于自己口袋管理类似于个人开发情形,如果自己钱丢了 ...

  2. 实现最简单PHP MVC实例

    关于网上大多MVC的简介我就不再多说,就是Model(模型)View(视图) C(控制器)这里作为一个刚入门PHP MVC框架的我,这里我搭建一个最简易的mvc项目,从而理解MVC 1在apache服 ...

  3. v9更换域名

    网站在发展的过程中,很可能多次的修改域名.那么在PHPCMS V9中我们要怎么进行设置呢? 请进行以下步骤的修改: 修改/caches/configs/system.php里面所有和域名有关的,把以前 ...

  4. nodejs+websocket制作聊天室视频教程

    本套教程主要讲解了node平台的安装,node初级知识.node 服务器端程序响应http请求,通过npm安装第三方包,websocket即时通讯.聊天页面界面制作.拖动原理.拖动效果.遮罩效果.定位 ...

  5. Ubuntu命令模式基础

    Ubuntu是一个自由.开源.基于Debian的Linux发行版.在ubuntu的基础上,又衍生其它各具特色的Linux发行版.首先是一个操作系统,操作系统用于管理电脑硬件.要发挥出电脑的作用,还得依 ...

  6. cURL模拟网页登陆

    <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/7/13 * Time: 23:15 */ $data=' ...

  7. laravel blade模板介绍

    第一步:首先写好模板 在sites下新建立一个app.blade.php文件 写入模板如: <!DOCTYPT html><html><head> <titl ...

  8. 简单说下Kanzi Studio

    一.Project 窗口 在Project窗口下可以创建界面节点,包含有Screen和Prefabs 二.Properties窗口 包含有节点的相关属性,不同类型的节点,属性不同.主要通过改变节点的属 ...

  9. 计算机浏览器存储技术cookie、sessionStorage、localStorage

    HTTP无状态协议是指协议对于事务处理没有记忆能力.会话跟踪协议的状态是指下一次传输可以"记住"这次传输信息的能力,无状态是指同一个会话(注意什么叫同一个会话)的连续两个请求互相不 ...

  10. usaco 2002 月赛 Chores 题解

    Description Farmer John's family pitches in with the chores during milking, doing all the chores as ...