首頁 > web前端 > js教程 > react jsx是什麼

react jsx是什麼

藏色散人
發布: 2020-11-30 15:54:35
原創
2207 人瀏覽過

react jsx是一個看起來很像XML的JavaScript語法擴展,React使用JSX來取代常規的JavaScript,JSX的優勢有:1、JSX執行更快;2、它是類型安全的,在編譯過程中就能發現錯誤;3.使用JSX編寫模板更快。

react jsx是什麼

本教學操作環境:windows10系統、react16,本文適用於所有品牌的電腦。

推薦:《程式設計影片

React JSX

React 使用 JSX 來取代常規的 JavaScript。

JSX 是一個看起來很像 XML 的 JavaScript 語法擴充。

我們不需要一定使用 JSX,但它有以下優點:

  • JSX 執行得更快,因為它在編譯為 JavaScript 程式碼後進行了最佳化。

  • 它是型別安全的,在編譯過程中就能發現錯誤。

  • 使用 JSX 寫模板更簡單快速。

我們先看以下程式碼:

const element = <h1>Hello, world!</h1>;
登入後複製

這個看起來可能有些奇怪的標籤語法既不是字串也不是 HTML。

它被稱為 JSX, 一種 JavaScript 的語法擴充。我們推薦在 React 中使用 JSX 來描述使用者介面。

JSX 是在 JavaScript 內部實作的。

我們知道元素是構成 React 應用的最小單位,JSX 就是用來宣告 React 當中的元素。

與瀏覽器的 DOM 元素不同,React 當中的元素事實上是普通的對象,React DOM 可以確保 瀏覽器 DOM 的資料內容與 React 元素保持一致。

要將React 元素渲染到根DOM 節點中,我們透過把它們都傳遞給ReactDOM.render() 的方法來將其渲染到頁面上:

React 實例

var myDivElement = <div className="foo" />;
ReactDOM.render(myDivElement, document.getElementById(&#39;example&#39;));
登入後複製

注意:

由於JSX 就是JavaScript,有些識別符像class 和for 不建議作為XML 屬性名稱。作為替代,React DOM 使用 className 和 htmlFor 來做對應的屬性。

使用JSX

JSX 看起來類似HTML ,我們可以看下實例:

ReactDOM.render(
    <h1>Hello, world!</h1>,
    document.getElementById(&#39;example&#39;)
);
登入後複製

我們可以在上述程式碼中嵌套多個HTML 標籤,需要使用一個div元素包覆它,實例中的p 元素添加了自訂屬性data-myattribute,添加自訂屬性需要使用data- 前綴。

React 實例

ReactDOM.render(
    <div>
    <h1>PHP中文网</h1>
    <h2>欢迎学习 React</h2>
    <p data-myattribute = "somevalue">这是一个很不错的 JavaScript 库!</p>
    </div>
    ,
    document.getElementById(&#39;example&#39;)
);
登入後複製

獨立檔案

你的React JSX 程式碼可以放在一個獨立檔案上,例如我們建立一個helloworld_react.js 文件,程式碼如下:

ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById(&#39;example&#39;)
);
登入後複製

然後在HTML 檔案中引入該JS 檔案:

React 實例

<body>
  <div id="example"></div>
<script type="text/babel" src="helloworld_react.js"></script>
</body>
登入後複製

JavaScript 表達式

我們可以在JSX 中使用JavaScript 表達式。表達式寫在花括號 {} 中。實例如下:

React 實例

ReactDOM.render(
    <div>
      <h1>{1+1}</h1>
    </div>
    ,
    document.getElementById(&#39;example&#39;)
);
登入後複製

在 JSX 中不能使用 if else 語句,但可以使用 conditional (三元運算) 表達式來取代。以下實例中如果變數i 等於1 瀏覽器會輸出true, 如果修改i 的值,則會輸出false.

React 實例

ReactDOM.render(
    <div>
      <h1>{i == 1 ? &#39;True!&#39; : &#39;False&#39;}</h1>
    </div>
    ,
    document.getElementById(&#39;example&#39;)
);
登入後複製

樣式

React 建議使用內聯樣式。我們可以使用 camelCase 語法來設定內聯樣式. React 會在指定元素數字後自動新增 px 。以下實例示範了為h1 元素新增myStyle 內嵌樣式:

React 實例

var myStyle = {
    fontSize: 100,
    color: &#39;#FF0000&#39;
};
ReactDOM.render(
    <h1 style = {myStyle}>PHP中文网</h1>,
    document.getElementById(&#39;example&#39;)
);
登入後複製

註解

註解需要寫在花括號中,實例如下:

React 實例

ReactDOM.render(
    <div>
    <h1>PHP中文网</h1>
    {/*注释...*/}
     </div>,
    document.getElementById(&#39;example&#39;)
);
登入後複製

數組

JSX 允許在模板中插入數組,數組會自動展開所有成員:

React 實例

var arr = [
  <h1>PHP中文网</h1>,
  <h2>学的不仅是技术,更是梦想!</h2>,
];
ReactDOM.render(
  <div>{arr}</div>,
  document.getElementById(&#39;example&#39;)
);
登入後複製

以上是react jsx是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板