[React-Native]初识代码结构

一、了解index.ios.js

React-Native就是在开发效率和用户体验间做的一种权衡。React-native是使用JS开发,开发效率高、发布能力强,不仅拥有hybrid的开发效率,同时拥有native app相媲美的用户体验。目前天猫也在这块开始试水,一些其他大厂都在尝试Reac Native开发。
分析命令创建的HelloWorld的index.ios.js代码:
1.第一句:var React = require(‘react-native’);有Node.js开发经验的同学都清楚,require可以引入其他模块。如果没有node.js开发经验的同学,可以脑补下java的import和c++的#include或者C#的using
2.第二句:批量定义组件

var {
    AppRegistry,
    StyleSheet,
    Text,
    View,
} = React;

其实,这只是一个语法糖而已,比如AppRegistry我们可以这样定义:var AppRegistry = React.AppRegistry;

3.构建Heollo World入口类。React提供了React.createClass的方法创建一个类。里面的render方法就是渲染视图用的。return返回的是视图的模板代码。其实这是JSX的模板语法,可以提前学习下。

4.相对于web开发,我们需要提供视图的样式,那么StyleSheet.create就是干这件事的,只是用JS的自面量表达了css样式。
5.如何引入css样式?其实在render方法返回的视图模板里已经体现出来了,即style={styles.container}.其中style是视图的一个属性,styles是我们定义的样式表,container是样式表中的一个样式。
6.注册应用入口,这个一定不能少,否则模拟器会提示报错:

二、需要掌握的其他技术

对于React-Native开发,仅仅有基础前端开发的知识是不够的,你还需要了解和掌握的有:

  • Node.js基础
  • JSX语法基础
  • Flexbox布局

三、目前需要关注的文件

1.在xcode项目代码中AppDelegate.m会标识入口文件,例如:
jsCodeLocation = [NSURL URLWithString:@”http://localhost:8081/index.ios.bundle“];
如果是网上下载别人的源码,注意此处的ip和端口是否有被修改。
2.闪屏界面在哪修改?在xcode项目中找到LaunchScreen.xib文件,点击,你会看到界面,这个就是启动界面,你手动添加组件或者修改文本即可,最好了解下xcode的使用。
3.文本编辑器打开index.ios.js文件,是js代码的入口文件,所有的代码编写从这开始,可以定义自己的模块和引入第三方模块。

四、修改文件index.ios.js

添加图片和修改样式。
(1)添加Image组件,将代码修改如下:

var {
    StyleSheet,
    Text,
    View,
    Image,
} = React;

(2)将render返回中的模版增加Image组件试图,具体如下:

render: function() {
    return (
        <View style={styles.container}>
            <Text style={styles.welcome}>
                React-Native入门学习
            </Text>
            <Image style={styles.pic} source={{uri: 'https://avatars3.githubusercontent.com/u/6133685?v=3&s=460'}}>
            </Image>
        </View>
    );
}

其中,Image标签的source的第一个大括号是模板,第二个大括号是js对象,js对象里面有个key是uri,表示图片的地址。
(3)修改图片试图样式,删除多余的样式,增加pic样式

const style = StyleSheet.create({
  container:{
    flex:1,
    alignItems:'center',
  },
  welcome:{
    fontSize:20,
    textAlign:'center',
    margin:10,
    color:'red',
  },
  pic:{
    width:193,
    height:100,
  }
})

(4)运行cmd+R

五、代码

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

class Bananas extends Component {
  render() {
    let pic = {
      uri: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg'
    };

  return (
      <View style={style.container}>
        <Text style={style.welcome}>
          React-Native入门学习
        </Text>
       <Image source={pic} style={{width: 193, height: 110}}/>
      </View>
    );
  }
}

const style = StyleSheet.create({
  container:{
    flex:1,
    alignItems:'center',
  },
  welcome:{
    fontSize:20,
    textAlign:'center',
    margin:10,
    color:'red',
  },
  pic:{
    width:193,
    height:100,
  }
})

AppRegistry.registerComponent('HelloWorld', () => Bananas);
时间: 2024-09-08 03:21:33

[React-Native]初识代码结构的相关文章

H5、React Native、Native应用对比分析

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!iOS开发者交流QQ群: 446310206 "存在即合理".凡是存在的,都是合乎规律的.任何新事物的产生总要的它的道理:任何新事物的发展总是有着取代旧事物的能力.React Native来的正是时候,一则是因为H5发展到一定程度的受限:二则是移动市场的迅速崛起强调团队快速响应和迭代:三则是用户的体验被放大,用户要求极致的快感,除非你牛x(例如:12306最近修改手机号需要用户自己发短信接收验证码).

三步将 React Native 项目运行在 Web 浏览器上面

React Native 的出现,让前端工程师拥有了使用 JavaScript 编写原生 APP 的能力.相比之前的 Web app 来说,对于性能和用户体验提升了非常多. 但是 React Native 的代码只兼容两个平台(iOS 和 Android),并没有兼容 Web 端访问.这里是因为 Facebook 开发人员认为 Web 端天生兼容性就巨麻烦,而且平台差异性是注定存在而且也要保留的,所以 React Native 的目标是 Learn once, write anywhere,而不

《React Native移动开发实战》一一1.1 看透React Native

1.1 看透React Native React Native(http://facebook.github.io/react-native/)第一次进入公众的视野是在2015年1月的React.js Conf(http://conf.reactjs. org/)上,随后,同年5月份,Facebook在F8 Conference(https://www. fbf8.com/)上正式宣布:React Native项目(如图1.1所示) 在Github开源.结果一天之内,就收获了5000多颗星,受关

如何用 React Native 创建一个iOS APP?

诚然,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等. React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验.React Native 把重点放在所有开发人员关心的平台的开发效率上--开发者只需学习一种语言就

React Native热更新及混合开发

随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使用 Hybrid 技术的公司转向了 React Native .虽然React Native在目前来说仍有不少的坑,不过对于以应用开发为主的App来说完全可以胜任. 概述 在iOS应用开发中,由于Apple严格的审核标准和低效率,iOS应用的发版速度极慢,这对于大多数团队来说是不能接受的,所以热更新对于iOS应用来说就显得尤其重要.而就在

《React Native移动开发实战》一一第1章 为什么要学习React Native

第1章 为什么要学习React Native 无论读者是移动平台开发者,还是Web前端开发者,想必对现在"大红大紫"的React Native都有所耳闻.那么,除了"乘着Facebook这棵大树好乘凉"的优势之外,React Native到底是何方"神圣",有什么令大家"趋之若鹜"的优点呢?下面带着这样的好奇,来随本书一探究竟吧! 本章主要内容有: React Native与React.js的对比. 为什么说React Nat

Android原生项目集成React Native的方法

开发环境准备 首先按照开发环境搭建教程来安装React Native在安卓平台上所需的一切依赖软件(比如npm). 在应用中添加JS代码 在项目的根目录中运行: $ npm init $ npm install --save react react-native $ curl -o .flowconfig https://raw.githubusercontent.com/facebook/react-native/master/.flowconfig npm init创建了一个空的node模块

xcode-如何运行react native github里的代码

问题描述 如何运行react native github里的代码 我想看看RCT里的例子,但是官网似乎只说了.我直接在xcode运行例子里的xcode文件报各种错误,不知道怎么开始? 解决方案 看下github page上面有说明 解决方案二: 添加node_modules依赖就可以了

React Native系列(6) - 编译安卓私有React-Native代码

  为何要自己编译React Native安卓私有代码 我们在开发中遇到一个HTTP2的问题,React Native安卓客户端在和HTTP2支持的服务器通讯的过程中会有crash,见 React-Native HTTP2 issue How to build private build 由于时间紧急,发布期限已经拖了好久了,没法等待官方解决方案,只能在本地做修复然后发布. 编译私有React-Native 针对android,React-Native有官方指导说明. 过程中遇到不少坑,记录如下