[ReactNative入門到精通]React Native 第一個程式 Hello Word

來源:互聯網
上載者:User

標籤:android   react   native   helloworld   ios   

人生沒有對錯,只有選擇後的堅持,不後悔,走下去,就是對的。

React Native 項目目錄解析

上一節我們簡單的建立了一個React Native的項目AwsoneProject,我們什麼都沒有操作,就直接在模擬器上運行起來了。這裡我們詳細的看看,React Native給我們產生的這幾個檔案到底是做什麼用的。

項目目錄結構

檔案建構如所示:

  • android
    android 的項目構建目錄
  • ios
    iphone 的項目構建目錄
  • node_modules
    react native 所引用的資產庫,項目依賴庫,打包指令碼等的目錄
  • index.android.js
    這個檔案是預設產生的,但是這個可以在android目錄中的MainActivity中進行設定。如下
        mReactInstanceManager = ReactInstanceManager.builder()                .setApplication(getApplication())                .setBundleAssetName("index.android.bundle")                // 設定模組的主入口為index.android                .setJSMainModuleName("index.android")                .addPackage(new MainReactPackage())                .setUseDeveloperSupport(BuildConfig.DEBUG)                .setInitialLifecycleState(LifecycleState.RESUMED)                .build();

其內容遵循的是react 規則

/** * Sample React Native App * https://github.com/facebook/react-native */‘use strict‘;// 聲明一個react native項目需要包含的幾個依賴庫var React = require(‘react-native‘);var {  AppRegistry,  StyleSheet,  Text,  View,} = React;// 整個Project的入口var AwesomeProject = React.createClass({   // 渲染的方式,和渲染的內容,類似布局檔案  render: function() {    return (      <View style={styles.container}>        <Text style={styles.welcome}>          Welcome to React Native!        </Text>        <Text style={styles.instructions}>          To get started, edit index.android.js        </Text>        <Text style={styles.instructions}>          Shake or press menu button for dev menu        </Text>      </View>    );  }});// 布局類型的樣式,並不是繼承於css只是包含FlexBox的屬性而已,使用時候注意文檔var styles = StyleSheet.create({  container: {    flex: 1,    justifyContent: ‘center‘,    alignItems: ‘center‘,    backgroundColor: ‘#F5FCFF‘,  },  welcome: {    fontSize: 20,    textAlign: ‘center‘,    margin: 10,  },  instructions: {    textAlign: ‘center‘,    color: ‘#333333‘,    marginBottom: 5,  },});// 註冊整個app的主入口AppRegistry.registerComponent(‘AwesomeProject‘, () => AwesomeProject);
  • index.ios.js
    類似Android中的js檔案,可以在xcodeproject中進行修改
/** * Sample React Native App * https://github.com/facebook/react-native */‘use strict‘;var React = require(‘react-native‘);var {  AppRegistry,  StyleSheet,  Text,  View,} = React;var AwesomeProject = React.createClass({  render: function() {    return (      <View style={styles.container}>        <Text style={styles.welcome}>          Welcome to React Native!        </Text>        <Text style={styles.instructions}>          To get started, edit index.ios.js        </Text>        <Text style={styles.instructions}>          Press Cmd+R to reload,{‘\n‘}          Cmd+D or shake for dev menu        </Text>      </View>    );  }});var styles = StyleSheet.create({  container: {    flex: 1,    justifyContent: ‘center‘,    alignItems: ‘center‘,    backgroundColor: ‘#F5FCFF‘,  },  welcome: {    fontSize: 20,    textAlign: ‘center‘,    margin: 10,  },  instructions: {    textAlign: ‘center‘,    color: ‘#333333‘,    marginBottom: 5,  },});AppRegistry.registerComponent(‘AwesomeProject‘, () => AwesomeProject);
  • 打包指令檔package.json
    react native預設是是用來packager進行打包,這個就是針對於packager的打包檔案,內容如下所示
{  "name": "AwesomeProject",  "version": "0.0.1",  "private": true,  "scripts": {    "start": "node_modules/react-native/packager/packager.sh"  },  "dependencies": {    "react-native": "^0.12.0"  }}
Hello World

Ok 這裡我們自己嘗試寫一個Hello World的項目程式。這裡我們根據產生的index.android.js進行修改。

/** * Sample React Native App * https://github.com/facebook/react-native */‘use strict‘;var React = require(‘react-native‘);var {  AppRegistry,  StyleSheet,  Text,  View,} = React;var AwesomeProject = React.createClass({  render: function() {    return (     // 放置一個 sytle為myFont的Text 。內容為Hello World     <Text style={[styles.myFont]} >          Hello World!     </Text>    );  }});// 定義 myFont樣式 的字型大小為100var styles = StyleSheet.create({  myFont: {      fontSize:100,  }});AppRegistry.registerComponent(‘AwesomeProject‘, () => AwesomeProject);

得到效果如下:

有過JavaScript基礎的同學一看應該就能夠看懂了,雖然本程式沒有使用到css,但是文法與格式都與css極為類似,可以是使其的子集。

而render的配置樣式有極為類似Android中的layout檔案編寫入模式。相信大家簡單的聯絡也能夠很快的入手。

調試注意

值得一提的是,一問我們的整個項目都是使用js來進行書寫的,所以我們的所有的項目在調試的時候都不需要重新編譯。

直接點擊Reload js既可以了,這個也就是為什麼後面說React Native能夠完成線上的Hotpatch功能,如所示:

當然沒有報錯的話,官方說模擬器可以按下F2鍵也能夠reload js,Genymotion下用 ?-M。我沒有成功過。

還是老實的再運行一遍吧。

/*
* @author zhoushengtao(周聖韜)
* @since 2015年10月11日 淩晨 1:34:20
* @weixin stchou_zst
* @blog http://blog.csdn.net/yzzst
* @交流學習QQ群:341989536
* @私人QQ:445914891
/

著作權聲明:轉載請標註:http://blog.csdn.net/yzzst 。 本文為博主原創文章,未經博主允許不得轉載。

[ReactNative入門到精通]React Native 第一個程式 Hello Word

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.