1. 程式人生 > 其它 >react安裝及簡單使用

react安裝及簡單使用

一、腳手架工具create-react-app安裝

使用以下命令進行安裝:

npm install -g create-react-app

二、create-react-app的使用

  1. 在需要建立專案的位置開啟命令列
  2. 輸入create-react-app + 專案名稱的命令,比如:
create-react-app todolist

  1. 當專案建立完成後,可以進入專案,並啟動:
cd todolist
npm start

三、腳手架工具生成的目錄結構

  • 重要檔案:
  1. index.html
  2. index.js
  3. App.js
  • 檔案內容:
  1. App.js
import React, { Component } from 'react';
/**
    import {Component} from 'react'
    相當於:
    import {Component} from React // 因為react匯出React物件
    由於解構賦值的原因,所以Component等於React.Component
*/
//所有的元件都要繼承Component
class App extends Component {
  // 傳送頁面內容
  render() {
    return (
      <div>
        Hello World
      </div>
    );
  }
}
// 匯出App模組
export default App;

  1. index.js
import React from 'react'; // 匯入React的作用是使用jsx語法
import ReactDOM from 'react-dom';
import App from './App'; // 接受
// 像js中使用標籤的語法,叫做jsx語法
ReactDOM.render(<App />, document.getElementById('root'));

  1. index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json">
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
    <title>TodoList</title>
  </head>
  <body>
    <noscript>
      You need to enable JavaScript to run this app.
    </noscript>
    <div id="root"></div>
  </body>
</html>

1.快速構建react專案:

npm install -g create-react-app // 全域性安裝create-react-app (只需要安裝一次)
create-react-app demo // 建立專案
cd demo // 進入專案目錄

建立的專案目錄結構:

-Demo // 專案名
  -node_modules // 存放第三方包
  -public
    -favicon.ico
    -index.html
    -manifest.json
  -src // 頁面程式碼都寫在這下面
    -App.css
    -App.js
    -App.test.js
    -index.css
    -index.js //專案入口
    -logo.svg
    -serviceWorker.js
    -setupTest.js
.gitignore
package.json
README.md
yarn.lock

2.初始化專案

在專案的根目錄下開啟命令列,輸入:

npm init -y   // 專案初始化, 執行完後會生成 package.json檔案 

3.安裝所需包

安裝react 的東西,以及antd

npm i --save react react-dom antd

安裝webpack 的三個基本項

npm i webpack webpack-cli webpack-command --save-dev

安裝webpack

npm i -D webpack  // 安裝最新穩定版

安裝webpack 伺服器 webpack-dev-server,讓啟動更方便

npm i --save-dev webpack-dev-server

自動建立html檔案 html-webpack-plugin

npm i --save-dev  html-webpack-plugin

清除無用檔案 clean-webpack-plugin,將每次打包多餘的檔案刪除

npm i --save-dev clean-webpack-plugin

樣式編譯loader外掛

npm i --save-dev style-loader css-loader  // css相關loader
npm i --save-dev node-sass sass-loader  // scss 相關loader
npm i --save-dev file-loader url-loader // 載入其他檔案,比如圖片,字型

安裝babel

npm i --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react  @babel/plugin-proposal-class-properties
npm i --save @babel/polyfill
npm i --save-dev babel-loader

4.根目錄建立webpack.config.js檔案,程式碼如下

const path = require('path');
const webpack = require('webpack');
const HtmlPlugin = require('html-webpack-plugin');
module.exports = {
    devtool: 'inline-source-map',
    entry: {
        index: './src/index.js'
    },
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'build')
    },
    module: {
        rules: [{
            test: /\.css$/,
            loader: ['style-loader', 'css-loader']
        }, {
            test: /\.scss$/,
            loader: ['style-loader', 'css-loader', 'sass-loader']
        }, {
            test: /\.(png|svg|jpg|gif)$/,
            loader: 'url-loader',
            options: {
                limit: 10000,
                name: 'img/[name].[hash:7].[ext]'
            }
        }, {
            test: /\.(js|jsx)$/,
            loader: 'babel-loader',
            exclude: /node_modules/
        }]
    },
    devServer: {
        contentBase: './build',
        port: 8081, // 埠號
        inline: true,
        hot: true
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new HtmlPlugin({
            template: 'public/index.html'
        })
    ]
}

5.在根目錄下新增檔案 .babelrc,程式碼如下

{
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ],
    "plugins": [
        "@babel/plugin-proposal-class-properties"
    ]
}

6.修改 package.json

 "scripts": {
    "start": "webpack-dev-server --open --mode production",
    "watch": "webpack --watch",
    "build": "webpack --mode production",
    "dev": "webpack  --mode development& webpack-dev-server --open  --mode development",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

7.修改public / index.html檔案

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <title>demo</title>
  </head>
  <body>
      <div id="root"></div>
  </body>
</html>

8.修改src / index.js檔案

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(
    <App />,
    document.getElementById('root')
);

9.修改src / App.js檔案

import React, { Component } from 'react';
import './App.css';  // 引入樣式檔案

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {};
  }
  render() {
    return (
      <div className="main">
        <div>我是首頁</div>
      </div>
    );
  }
}
export default App;

10.修改 src / App.css檔案

.main {
  background: darkgray;
  width: 500px;
  height: 500px;
  margin: 0 auto;
}

11.啟動專案

(1) 在專案根目錄下執行

npm run dev

(2) 如果裝有yarn,也可以用yarn執行

yarn start

執行結果:xxx

 

作者:年輕人多學點
連結:https://www.jianshu.com/p/931b5864a101
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。