React Native編譯器的配置以及基礎知識

  入職新公司,這邊打算採用RN來寫界面,因此學習一波這一塊的知識。html

  採用的是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項目基礎配置    react

import React, {Component} from 'react';

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

 import與iOS一致,是導入組件or面向組件,其中默認組件是不須要{}包裹起來的,好比說React,可是Component、Appregistry、Text等組件都是非默認組件,因此須要用{}包裹起來。

git

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的語法。github

 

我在學習的時候,有一點老是弄不清楚,不知道何時要加{},何時不加;也不知道何時加(),何時不加?web

  一、包裝對象的時候使用{},在JS中,對象就是這麼寫的 {x: 100, y: 100, method: function() {} } react-native

  二、表達式都須要使用{},在上述的代碼中,<View style={}.....    這就是一個賦值表達式,因此須要一個{},那麼爲何{}裏面還有{}呢?{flex: 1}這是個對象了,因此須要{}包裹起來webstorm

  三、變量也須要用{}包裹起來,好比上面的<Text style={{flex: 1}}>{str}</Text>中str是個變量,因此包裹起來顯示,若是不包裹,那麼text就是直接顯示str。函數

  四、在包裹組件標籤的時候,必須使用(),上面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、傳值等知識。

相關文章
相關標籤/搜索