[React]React.JS學習筆記(1) - Hello World

摘要:[ReactJS]React學習筆記(1) - Hello World

React是Facebook所推出的一個framework,它的好處是透過Virtaul DOM的運作,提高網頁的運作效能。另一方面,它的元件化的設計概念,讓開發React的時候,實際上就是開發一個一個的元件,最後再一起把元件組裝起來成為一個網頁。

使用React.JS

要了解React.JS,可到React.JS的官網,有許多的資訊及資源可供參考。依照慣例,一定是先來個Hello World。但在寫Hello World之前,有些事情必須先知道。透過React.JS寫網頁時,我們並不會直接寫HTML Tag,而是寫React Component,再透過React產生Virtual DOM。

概念有些複雜,但其實程式碼不難。不論是Hello World,或是更複雜的網頁。其原始架構都是先建立React Component後,再透過React.render()這個function,將React Component生成實體的HTML DOM,並掛載到所指定的HTML元素上(這個Sample中就是<div id="app"></div>)。

 

<!DOCTYPE html>
<html>
<head>
  <script src="http://fb.me/react-0.13.1.js"></script>  
</head>
<body>
  <div id="app"></div>
  <script>
      var HelloMessage = React.createClass({
        displayName: "HelloMessage",
        render: function() {
          return React.createElement("div", null, "Hello World ", null);
        }
      }),mountNode=document.getElementById('app');
    
    React.render(React.createElement(HelloMessage, null), mountNode);
  </script>
</body>

基本上,需要引入的js檔只有一個,就是react-0.13.1.js

透過開發者工具來看產生的結果,可以看到圈起來的element,就是透過React.JS產生的。

P01

使用JSX語法

React為了要簡化開發,並讓程式碼直覺,提供了一個JSX語法糖衣。上面的Sample換成JSX語法,就變成底下這樣。注意到,這裏另外引進了一個js檔-JSXTransformer-0.13.1.js。同時,script的type也變成了text/jsx

<!DOCTYPE html>
<html>
<head>
  <script src="http://fb.me/react-0.13.1.js"></script>
  <script src="http://fb.me/JSXTransformer-0.13.1.js"></script>
  </head>
<body>
  <div id="app"></div>
  <script type="text/jsx">
      /** @jsx React.DOM */
      var HelloMessage = React.createClass({
      	render: function() {
      		return <div> Hello World</div>
      	}
      },mountNode=document.getElementById('app'));

      React.render(<HelloMessage />, mountNode);
  </script>
</body>
</html>

是不是更簡單易懂?這種JSX語法,是官方推薦使用的語法。如果想要更詳細的了解,請參考官方的文件,或是等我更了解其細節後,再來進行分享。


參考