<React Native移動開發實戰>-1-React Native的JSX解決方案,-1-reactjsx

來源:互聯網
上載者:User

<React Native移動開發實戰>-1-React Native的JSX解決方案,-1-reactjsx

   JSX並不是一門新的開發語言,而是Facebook提出的文法方案:一種可以在JavaScript代碼中直接書寫HTML標籤的文法糖,所以,JSX本質上還是JavaScript語言。

小知識:文法糖(Syntactic sugar)是由英國計算科學家彼得·蘭丁(https://zh.wikipedia.org/ wiki/%E5%BD%BC%E5%BE%97%C2%B7%E5%85%B0%E4%B8%81)發明的一個術語,指電腦語言中添加的某種文法,這種文法對語言的功能並沒有影響,但是更方便程式員使用。文法糖讓程式更加簡潔,有更高的可讀性。

在React和React Native開發中,不一定非要使用JSX,也可以直接使用JavaScript進行開發。但是,強烈建議讀者使用JSX!因為JSX在定義類似HTML這種樹形結構時,簡單明了,極大地提高了開發和維護的效率。

下面以1.4節第一個React Native應用中的代碼為例:

 

01  export default class ch02 extends Component { // 每個頁面可以理解成一個組件02      render() {                                  // 渲染頁面的函數03          return (04              <View style={styles.container}>    // 頁面根View05                  <Text style={styles.welcome}>06                      Welcome to React Native!07                  </Text>08                  <Text style={styles.instructions}>09                      To get started, edit index.ios.js10                  </Text>11                  <Text style={styles.instructions}>12                      Press Cmd+R to reload,{'\n'}13                      Cmd+D or shake for dev menu14                  </Text>15              </View>16          );17      }16  }

  

在上述代碼中,組件的render()方法函數是用於渲染頁面的,它的傳回值是一個View的對象,但是為什麼沒有發現建立對象和設定屬性的代碼呢?原來,JSXTransformer幫我們把代碼中XML-Like文法編譯轉換成真實可用的JavaScript代碼,它不僅僅建立View對象、設定View樣式和布局,同時更加貼心的是,還構建了View之間的樹形結構。例如,上述例子中的樹形結構是這樣的:

 Root View (style container)---- Sub Text 1 (style welcome)---- Sub Text 2 (style instructions)---- Sub Text 3 (style instructions)

  

和我一起學吧,《React Native移動開發實戰》

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.