react學習-3.JSX語法原理

第02節(jié)的HelloWorld程序從本質上能完成所有的工作。只是有一些開發(fā)效率問題,比如JavaScript代碼與標簽混寫在一起等。而使用JSX,則可以有效解決這些問題。

1.JSX定義

JSX即Javascript XML,它使用XML標記來創(chuàng)建虛擬DOM和聲明組件。是一種 JavaScript 的語法擴展。乍看起來可能比較像是模版語言,但事實上它完全是在 JavaScript 內部實現的。

2.重寫HelloWorld

import React from 'react';
import ReactDOM from 'react-dom';
var element=<h1>Hello, world!</h1>;

ReactDOM.render(
  element, document.getElementById('root'));

我們來觀察一下聲明的這個變量:

這種看起來可能有些奇怪的標簽語法既不是字符串也不是 HTML。它就被稱為 JSX。

3.JSX實現原理

我們想要在瀏覽器里直接運行采用 JSX 語法的 JavaScript 顯然暫時是不可能實現的,在實際的生產過程中,我們需要利用 Babel 一類的轉譯器來將我們的 JSX 語法或者 ES6 語法轉譯成瀏覽器可以直接運行的 JavaScript,事實上 JSX 在經過轉譯之后,會變成 React 創(chuàng)建 Element 的一個方法。即第二節(jié)所寫demo實際就是babel轉換后的代碼來宮瀏覽器識別。

ReactDOM.render( 
    <h1>Hello world!</h1>, 
    document.getElementById('container')
 )

//babel轉換后

ReactDOM.render( 
  React.createElement('h1',null,`Hello world!`),
  document.getElementById('container')
 )

4.JSX好處

通過上邊的demo你可以發(fā)現JSX的好處。

  • 可以使用熟悉的語法仿照HTML來定義虛擬DOM。
  • 程序代碼更加直觀。
  • 與JavaScript之間等價轉換,代碼更加直觀。
  • 可以任意地在 JSX 當中使用 JavaScript 表達式,具體見下章。

下一篇——react學習-4.JSX語法進階

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • JSX是React的核心組成部分,它使用XML標記的方式去直接聲明界面,界面組件之間可以互相嵌套??梢岳斫鉃樵贘S...
    可樂愛上咖啡閱讀 72,322評論 1 63
  • 最近開始了React的學習之旅,感覺這些框架都是一個套路。早先有學過VUE,它就像是在寫模板,大部分是HTML...
    殊一ONLY閱讀 1,328評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評論 25 709
  • 續(xù)寫評分標準 第五檔 (21-25分) 與所給短文融合度高,與所提供的各段落開頭語銜接合理。 內容豐富,應用了5個...
    靜_靜_閱讀 4,231評論 0 0
  • DDL create database 庫名 create table [庫名.]表名 //‘use 庫名’...
    zz張哲閱讀 146評論 0 0

友情鏈接更多精彩內容