2021年1月25日 星期一

重新踏入網頁開發 (7) - React

 React - Introduction

    A JavaScript library for building user interfaces. React 在 MVC 分類上屬於 View,也就是主要用來開發前端。比起直接使用 npx create-react-app,我這裡想紀錄一些較簡單且原始的 React Sample Code。
  • 原本既有的程式碼
        <!-- Some HTML -->
        <div id="mydiv"></div>
        <!-- Some HTML -->
  • 導入 React library
        <script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
        <script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
  • React Code
        <script type="text/javascript">
          class HelloWorld extends React.Component {
            render() {
              return React.createElement('h1', {}, 'Hello React');
            }
          }
          const domContainer = document.querySelector('#mydiv');
          ReactDOM.render(React.createElement(HelloWorld), domContainer);
        </script>
  • Result
        <div id="mydiv">
          <h1>Hello React</h1>
        </div>

 React - JSX ver

    現今 React 大多都會用 JSX 語法,較為便捷直觀。這裡附上上面純 React 跟 React & JSX 的 Sample Code。
  <!DOCTYPE html>
  <html>
    
    <!--這兩個 script 讓我們可以在 JavaScripts 寫 React Code -->
    <script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
    
    <!--這個 script 讓我們可以使用 JSX 和 ES6,即使瀏覽器較舊 -->
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
    
    <body>

      <div id="mydiv"></div>
      <div id="mydiv_JSX_ver"></div>

      <!-- 純 React ( 不用 JSX ) -->
      <script type="text/javascript">
        class HelloWorld extends React.Component {
          render() {
            return React.createElement('h1', {}, 'Hello React');
          }
        }
        const domContainer = document.querySelector('#mydiv');
        ReactDOM.render(React.createElement(HelloWorld), domContainer);
      </script>

      <!-- JSX 版本 -->
      <script type="text/babel">
        class Hello extends React.Component {
          render() {
            return <h1>Hello React with JSX!</h1>
          }
        }
        ReactDOM.render(<Hello />, document.querySelector('#mydiv_JSX_ver'))
      </script>

    </body>

  </html>
參考資料 :

Related Posts:

  • C++ Primer (5th Edition) 總覽 讀書心得 - C++ Primer (5th Edition) - Chapter 1 讀書心得 - C++ Primer (5th Edition) - Chapter 2 (1) - Primitive Types 讀書心得 - C++ Primer (5th Edition) - Chapter 2 (2) - Const 讀書心得 - C++ Primer (5th Edition… Read More
  • 讀書心得 - C++ Primer (5th Edition) - Chapter 5 (2) - Exception Exceptions Exceptions 是程式在 run-time 遇到的異常,比如與資料庫的連結斷開或遇到其他程式異想不到的 input。Exception handling 基本上就是當程式無法解決問題或者無法繼續執行時發出警告,或者更進一步根據情況處理 exception。 Exception handling 由 detecting, handling parts of a program 所組成 t… Read More
  • 網頁開發筆記 重新踏入網頁開發 重新踏入網頁開發 (1) - Nodejs 重新踏入網頁開發 (2) - ES6 重新踏入網頁開發 (3) - Route 重新踏入網頁開發 (4) - Dependency injection 重新踏入網頁開發 (5) - Blocking & Non-Blocking 重新踏入網頁開發 (6) - Express - 2 重新踏入… Read More
  • 讀書心得 - C++ Primer (5th Edition) - Chapter 5 (3) - 常用詞彙 常用詞彙 block Sequence of zero or more statements enclosed in curly braces. A block is a statement, so it can appear anywhere a statement is expected. … Read More
  • 讀書心得 - C++ Primer (5th Edition) - Chapter 5 (1) - Statement Statement Simple Statements expression 加上 ; 作為結尾視為 statement。 a + 5 // expression a + 5; // statement ; // null statement Compound Statements (Blocks) 在 { } 中間一連串的 statements … Read More

0 意見:

張貼留言

Popular Posts