React入門教程1---初見面

React入門教程1---初見面:http://www.javashuo.com/article/p-wjidhutq-db.htmlcss

 

 

React 教程

React 是一個用於構建用戶界面的 JAVASCRIPT 庫。html

React主要用於構建UI,不少人認爲 React 是 MVC 中的 V(視圖)。react

React 起源於 Facebook 的內部項目,用來架設 Instagram 的網站,並於 2013 年 5 月開源。webpack

React 擁有較高的性能,代碼邏輯很是簡單,愈來愈多的人已開始關注和使用它。web


React 特色

  • 1.聲明式設計 −React採用聲明範式,能夠輕鬆描述應用。express

  • 2.高效 −React經過對DOM的模擬,最大限度地減小與DOM的交互。npm

  • 3.靈活 −React能夠與已知的庫或框架很好地配合。json

  • 4.JSX − JSX 是 JavaScript 語法的擴展。React 開發不必定使用 JSX ,但咱們建議使用它。瀏覽器

  • 5.組件 − 經過 React 構建組件,使得代碼更加容易獲得複用,可以很好的應用在大項目的開發中。babel

  • 6.單向響應的數據流 − React 實現了單向響應的數據流,從而減小了重複代碼,這也是它爲何比傳統數據綁定更簡單。


在開始學習 React 以前,須要具有如下基礎知識:

  • HTML5
  • CSS
  • JavaScript

React 第一個實例

本教程使用了 React 的版本爲 16.4.0,你能夠在官網 https://reactjs.org/ 下載最新版。

React 安裝

React 能夠直接下載使用,下載包中也提供了不少學習的實例。

本教程使用了 React 的版本爲 16.4.0,你能夠在官網 https://reactjs.org/ 下載最新版。

你也能夠直接使用 BootCDN 的 React CDN 庫,地址以下:

  1.  
    <script src= "https://cdn.bootcss.com/react/16.4.0/umd/react.development.js"></script>
  2.  
    <script src= "https://cdn.bootcss.com/react-dom/16.4.0/umd/react-dom.development.js"></script>
  3.  
    <!-- 生產環境中不建議使用 -->
  4.  
    <script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>

官方提供的 CDN 地址:

  1.  
    <script src= "https://unpkg.com/react@16/umd/react.development.js"></script>
  2.  
    <script src= "https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
  3.  
    <!-- 生產環境中不建議使用 -->
  4.  
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

注意: 在瀏覽器中使用 Babel 來編譯 JSX 效率是很是低的。

使用實例

如下實例輸出了 Hello, world!

  1.  
    <!DOCTYPE html>
  2.  
    <html>
  3.  
    <head>
  4.  
    <meta charset="UTF-8" />
  5.  
    <title>Hello React!</title>
  6.  
    <script src="https://cdn.bootcss.com/react/16.4.0/umd/react.development.js"></script>
  7.  
    <script src="https://cdn.bootcss.com/react-dom/16.4.0/umd/react-dom.development.js"></script>
  8.  
    <script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>
  9.  
    </head>
  10.  
    <body>
  11.  
     
  12.  
    <div id="example"></div>
  13.  
    <script type="text/babel">
  14.  
    ReactDOM.render(
  15.  
    <h1>Hello, world!</h1>,
  16.  
    document.getElementById('example')
  17.  
    );
  18.  
    </script>
  19.  
     
  20.  
    </body>
  21.  
    </html>

實例解析:

實例中咱們引入了三個庫: react.min.js 、react-dom.min.js 和 babel.min.js:

  • react.min.js - React 的核心庫
  • react-dom.min.js - 提供與 DOM 相關的功能
  • babel.min.js - Babel 能夠將 ES6 代碼轉爲 ES5 代碼,這樣咱們就能在目前不支持 ES6 瀏覽器上執行 React 代碼。Babel 內嵌了對 JSX 的支持。經過將 Babel 和 babel-sublime 包(package)一同使用可讓源碼的語法渲染上升到一個全新的水平。
  1.  
    ReactDOM.render(
  2.  
    <h1>Hello, world!</h1>,
  3.  
    document.getElementById('example')
  4.  
    );

以上代碼將一個 h1 標題,插入 id="example" 節點中。

注意:

若是咱們須要使用 JSX,則 <script> 標籤的 type 屬性須要設置爲 text/babel。


經過 npm 使用 React

若是你的系統還不支持 Node.js 及 NPM 能夠自行安裝。

咱們建議在 React 中使用 CommonJS 模塊系統,好比 browserify 或 webpack,本教程使用 webpack。

國內使用 npm 速度很慢,你可使用淘寶定製的 cnpm (gzip 壓縮支持) 命令行工具代替默認的 npm:

  1.  
    $ npm install -g cnpm --registry=https: //registry.npm.taobao.org
  2.  
    $ npm config set registry https://registry.npm.taobao.org
 

這樣就可使用 cnpm 命令來安裝模塊了:

$ cnpm install [name]

更多信息能夠查閱:http://npm.taobao.org/


使用 create-react-app 快速構建 React 開發環境

create-react-app 是來自於 Facebook,經過該命令咱們無需配置就能快速構建 React 開發環境。

create-react-app 自動建立的項目是基於 Webpack + ES6 。

執行如下命令建立項目:

$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/
$ npm start

在瀏覽器中打開 http://localhost:3000/ ,結果以下圖所示:

項目的目錄結構以下:

manifest.json 指定了開始頁面 index.html,一切的開始都從這裏開始,因此這個是代碼執行的源頭。

嘗試修改 src/App.js 文件代碼:

  1.  
    import React, { Component } from 'react';
  2.  
    import logo from './logo.svg';
  3.  
    import './App.css';
  4.  
     
  5.  
    class App extends Component {
  6.  
    render() {
  7.  
    return (
  8.  
    <div className="App">
  9.  
    <div className="App-header">
  10.  
    <img src={logo} className="App-logo" alt="logo" />
  11.  
    <h2>歡迎來到React教程</h2>
  12.  
    </div>
  13.  
    <p className="App-intro">
  14.  
    你能夠在 <code>src/App.js</code> 文件中修改。
  15.  
    </p>
  16.  
    </div>
  17.  
    );
  18.  
    }
  19.  
    }
  20.  
     
  21.  
    export default App;

修改後,打開 http://localhost:3000/ (通常自動刷新),輸出結果以下:

筆記

  1. create-react-app 執行慢的解決方法:

    在使用 create-react-app my-app 來建立一個新的React應用,在拉取各類資源時,每每會很是慢,一直卡在那:

    fetchMetadata: sill mapToRegistry uri http://registry.npmjs.org/whatwg-fetch

    能夠看到資源仍是使用了 npmjs.org,解決方法是換成淘寶的資源:

    $ npm config set registry https://registry.npm.taobao.org
    -- 配置後可經過下面方式來驗證是否成功
    $ npm config get registry
    -- 或 npm info express
  2.    React 代碼的書寫格式和之前的 JS 有很大的不一樣,下面經過對這段代碼進行分析瞭解一下他。

    之前使用JS 定義一個變量使用 var 如今用 const:

    const div = document.createElement('div');

    ReactDOM.render(...) 是渲染方法,全部的 js,html 均可經過它進行渲染繪製,他又兩個參數,內容和渲染目標 js 對象。

    內容就是要在渲染目標中顯示的東西,能夠是一個React 部件,也能夠是一段HTML或TEXT文本。渲染目標JS對象,就是一個DIV或TABEL,或TD 等HTML的節點對象。

    ReactDOM.render(<App />, div);

    unmountComponentAtNode() 這個方法是解除渲染掛載,做用和 render 恰好相反,也就清空一個渲染目標中的 React 部件或 html 內容。

    ReactDOM.unmountComponentAtNode(div);
相關文章
相關標籤/搜索