<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 1. 簡單使用 ## 1.1 環境 其實和`jQuery`類似,也可以使用`html`的文件引入方式來開發一個簡單的`Demo`。可以查閱文檔:[在網站中添加 React – React (docschina.org)](https://react.docschina.org/docs/add-react-to-a-website.html) 開發環境引入文件: ~~~ <script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script> <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script> ~~~ 因為在`React`中寫的不是原生的`JavaScript`語句,而是`jsx`語句,所以這里需要引入`babel`進行翻譯: ~~~ <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> ~~~ 在使用`React`編寫語句的時候,不再是使用`<script>`標簽的`type="text/javasctipt"`屬性。取而代之的是:`<script>`標簽以及`type="text/babel"`屬性。 ## 1.2 使用案例 ~~~ <body> <div id="test"></div> <script crossorigin src="./js/react.development.js"></script> <script crossorigin src="./js/react-dom.development.js"></script> <script src="./js/babel.min.js"></script> <script type="text/babel"> var root = document.getElementById("test") class MyElement extends React.Component { render() { return ( <h1>Hello!</h1> ) } } ReactDOM.render(<MyElement/>, root) </script> </body> ~~~ 可以在`webstorm`中添加`React`提示,以方便編寫代碼。比如這里安裝`React-Native`提示: ![](https://img.kancloud.cn/98/c9/98c91b361bc81c3f9d8ec4ff407907e8_1214x526.png) 且可以找到對應的`github`的鏈接地址,比如:https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-native 同時,可以在瀏覽器安裝一個開發插件`React Developer Tools`,可以用于檢測該網站是否是`React`編寫的,且可以用來檢測組件、狀態數據等。 ![](https://img.kancloud.cn/f2/c2/f2c2e9b456986c87eed888fc52936676_1109x268.png) ## 1.3 簡單理解 看下`babel`是如何翻譯的,進入`babel`的官網:https://babel.docschina.org/repl/#: 粘貼: ``` class MyElement extends React.Component { render() { return ( <h1>Hello!</h1> ) } } ``` 可以看到生成的內容為: ``` "use strict"; class MyElement extends React.Component { render() { return /*#__PURE__*/React.createElement("h1", null, "Hello!"); } } ``` 也就是轉換為`React.createElement`來實現。且注意到使用了`"use strict";`,這是什么意思呢? > 即:`JavaScript` 嚴格模式 > 目的是指定代碼在嚴格條件下執行,具體而言: > - 嚴格模式下你不能使用未聲明的變量,也就是所有變量必須先聲明后賦值; > - 禁止`this`關鍵字指向全局對象,在嚴格模式下,函數中的`this`會轉變為`undefined`; > - `use strict`指令只允許出現在腳本或函數的開頭; 那么,如果我們生成一個復雜的標簽內容: ~~~ class MyElement extends React.Component { constructor() { super(); this.datas= ["張三", "李四", "王五"] } render() { return ( <ul> { this.datas.map((item, index) => { return <li key={index}>{item}</li> }) } </ul> ) } } ~~~ 對應的在`HTML`頁面會生成: ``` <ul><li>張三</li><li>李四</li><li>王五</li></ul> ``` 那么,對于上述`jsx`標簽的內容生成的`babel`是如何的?不妨再次使用[上面的網站](https://babel.docschina.org/repl/#)來查看: ``` "use strict"; class MyElement extends React.Component { constructor() { super(); this.datas = ["張三", "李四", "王五"]; } render() { return /*#__PURE__*/React.createElement("ul", null, this.datas.map((item, index) => { return /*#__PURE__*/React.createElement("li", { key: index }, item); })); } } ``` 可以看見最終使用`babel`轉換后也是對應的: ``` return /*#__PURE__*/React.createElement("li", { key: index }, item); ``` 說明創建元素我們雖然省略了,但是`babel`轉換后,還是按照正常創建流程來進行`createElement`。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看