React 學習筆記之創建 React 項目

安裝 React 的學習環境

// 安裝創建 react 項目的工具  npm install -g create-react-app    // 創建一個項目  ➜  Project create-react-app jiajia-react  Creating a new React app in /Users/myCode/Project/jiajia-react.    Installing packages. This might take a couple minutes.  Installing react, react-dom, and react-scripts...    // 啟動項目  cd jiajia-react  npm start

目錄結構介紹

  • node_modules 存放 npm 包的目錄。
  • public 存放靜態資源,提供外部訪問。
  • src 存放源代碼。

業務調用順序

src/index.js 中有如下代碼,程序首先導入了 React 和 ReactDom 模塊,並導入了一個當前目錄下的 App 模塊。隨後在代碼中使用 ReactDOM.render 將 App 模塊渲染到了界面上。這個 App 在 React 中稱為組件(component)。而這個組件渲染到什麼位置則是第二個參數 document.getElementById(『root』) 決定的,它從 index.html 中獲取到了 root 節點,並將 App 插入到 root 節點下。

import React from 'react';  import ReactDOM from 'react-dom';  import App from './App';  import './index.css';    ReactDOM.render(    <App />,    document.getElementById('root')  );

而 App 組件中首先導入了 React 的 Component,並創建了一個 App 的類,繼承與 React 的 Component。裏面實現了 render 函數,該函數僅返回了一些 html 代碼,用於界面上顯示。值得注意的是,由於 class 是 JavaScript 的關鍵字,所以在給 div 添加樣式的時候,要將 class 修改為 className。這裡的代碼是 jsx 語法。最終將實現好的 App 通過 ES6 的 export 語法將這個模塊導出提供外部使用。

import React, { Component } from 'react';  import logo from './logo.svg';  import './App.css';    class App extends Component {    render() {      return (        <div className="App">          <div className="App-header">            <img src={logo} className="App-logo" alt="logo" />            <h2>Welcome to React</h2>          </div>          <p className="App-intro">            To get started, edit <code>src/App.js</code> and save to reload.          </p>        </div>      );    }  }    export default App;

編譯生產環境的項目

// 編譯項目,會在項目目錄下生成一個 build 的文件夾。  npm run build    // 安裝 pushstate-server 用於將已經編譯好的項目部署  npm install -g pushstate-server  // 將編譯項目運行在本地查看效果  pushstate-server build  // Listening on port 9000 (http://0.0.0.0:9000)

執行以上命令後,會產生一個編譯後的生產環境的代碼。瀏覽器訪問 http://0.0.0.0:9000 後就能看到編譯後的測試項目了。

相關