react教程(零)安裝

来源:https://www.cnblogs.com/liuyongjia/archive/2018/08/19/9501618.html
-Advertisement-
Play Games

react教程(零)—— 安裝 react項目的基本配置,使用create-react-app和webpack構建react-app。主要介紹如何新建一個react-app,並對webpack如何創建react-app做了詳細介紹。 ...


安裝

在最初的階段,可以使用線上編輯的網站來學習React基本的語法。
從 Hello World 開始,可以在Codepen,或者codesandbox上進行編寫。
當然,也可以使用npm或者yarn來安裝依賴,本地進行開發。
這裡先講解通過create-react-app來創建一個React項目,後面會詳細講解如何用webpack創建一個react項目。

create-react-app

詳細文檔可以去github查看https://github.com/facebook/create-react-app

Node和Npm

首先安裝Node.js,這個直接在Node官網下載安裝包即可。建議下載長期支持版,bug會較少。
安裝完畢後,在終端或者cmd里輸入

npm -v

如果要使用npx,確保npm的版本大於5.2。如果npm版本較低,使用

npm i -g npm

更新npm到最新版,就可以使用npx了。有關npx的詳細信息,可以查看這篇文章
如果使用yarn,也可以自行去yarn官網下載安裝。

create-react-app

官方介紹了3種創建一個react-app的方法。
1.npx

npx create-react-app my-app

2.npm init xxx your-app

npm init react-app my-app

npm init相當於一次npx的命令封裝,具體解釋可以看一下這篇npm文檔-init|npm
需要註意的是,這個方法需要更高版本的npm,6+。
3.yarn

yarn create react-app my-app

我個人比較建議使用yarn來管理npm依賴,速度更快,上手也很簡單。此處yarn的版本要求0.25+。

cd my-app

等到依賴安裝完畢,進入到新創建的my-app目錄里。

├── node_modules
├── README.md
├── package.json
├── public
│   ├── favicon.ico
│   ├── index.html
│   └── manifest.json
├── src
│   ├── App.css
│   ├── App.js
│   ├── App.test.js
│   ├── index.css
│   ├── index.js
│   ├── logo.svg
│   └── registerServiceWorker.js
└── yarn.lock

create-react-app只安裝了最少能運行一個react-app的依賴,例子也很簡單,現在我們運行一下。

yarn start

運行成功後,就可以在http://localhost:3000看到這個例子了。

webpack

現在前端開發常用的構建工具是webpack。接下來介紹用webpack構建一個簡單的react-app。

新建目錄

首先新建一個目錄。

mkdir webpack-react-app
cd webpack-react-app
npm init -y

這時,目錄里會有一個package.json。接下來,我們新建一個HTML文件,存放到dist目錄,作為一個載體。

mkdir dist
cd dist
touch index.html

它的代碼如下

<!DOCTYPE html>
<html>
  <head>
    <title>webpack react app</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="/main.js"></script>
  </body>
</html>

這裡的id,預設為app,在具體編寫時,可以修改。main.js也是webpack自己生成的,可以修改。

安裝webpack

接下來安裝webpack的一些依賴。

yarn add -D webpack webpack-dev-server webpack-cli

安裝完畢以後,在package.json配置一下啟動命令。

...
"scripts": {
  "start": "webpack-dev-server --config ./webpack.config.js --mode development",
  ...
},
...

--mode 用來配置模式,可以區別是構建還是開發模式,如果是構建發佈,就把一些開發時的提示等插件去掉。
--config 指向webpack的配置文件,預設為同目錄下的 webpack.config.js

配置webpack

接下來我們來創建 webpack.config.js

touch webpack.config.js

它的基本代碼如下:

module.exports = {
  entry: './src/index.js', //webpack的入口文件
  output: { //輸出目錄配置
    path: __dirname + '/dist',
    publicPath: '/',
    filename: 'main.js'
  },
  devServer: { //開發時伺服器的配置
    contentBase: './dist'
  }
};

根據習慣, src/index.js 是我們預設的入口。打包結束以後,生成一個 main.js 到dist目錄下。配置了DevSever之後,我們可以在瀏覽器里訪問到dist下的文件。
接下來需要編寫 src/index.js

console.log('webpack test');

終端運行

yarn start

打開http://localhost:8080查看控制台輸出。
正常輸出了webpack test。
接下來要引入react。

安裝babel

react用到了jsx語法,需要使用babel來轉義一遍,才能被瀏覽器正常讀取。
安裝babel和依賴

yarn add -D babel-core babel-loader babel-preset-env babel-preset-react

新建babel配置文件

touch .babelrc

配置如下:

{
  "presets": [
    "react",
    ["env", {
      "targets": {
        "browsers": ["last 2 versions", "safari >= 7"]
      }
    }]
  ]
}

具體的 babel-preset-env 配置可以查看babel文檔-babel-preset-env配置
安裝完畢以後,新的 webpack.config.js 配置為

module.exports = {
  ...
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: ['babel-loader']
      }
    ]
  },
  resolve: {
    extensions: ['*', '.js', '.jsx']
  },
  ...
};

接著就可以安裝react依賴了。

yarn add -D react react-dom

index.js 重寫一下。

import React from 'react';
import ReactDOM from 'react-dom';

const title = 'Hello World!';

ReactDOM.render(
<div>{title}</div>,
document.getElementById('app')
);

運行一下

yarn start

ok,一個簡單的react-app就創建成功了。
下一篇,將會講解react的基本概念和語法。
謝謝閱讀。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 聲明 這並不是掘金官方小程式(貌似沒有搜到掘金 對應的官方小程式),完全為第三者開發者開發,僅用於學習交流,禁止用於其他用途。若要使用官方正版,可訪問掘金 "官方網站" ,或下載掘金官方 APP,或訪問掘金官方其他途徑。 該小程式所有 均來自掘金官方 網站和官方 版 (以 為主), 是~~照抄~~參 ...
  • npm run build報錯 原理 按照他人的說法是,伺服器記憶體不夠用了,這樣就給他配置一個單獨的記憶體出來就解決了 解決方法 sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 sudo /sbin/mkswap /var/swap. ...
  • html中的定位體系 一、 分類 1、常規流static 2、浮動float 3、相對定位relative 4、絕對定位absolute 5、固定定位fixed 二、使用時的區分 在網頁佈局中,常常都會使用到這5中定位方式 ,總體分為三大類:靜態static、浮動float、絕對定位(relativ... ...
  • var i = 2, x = 5;var fn = function (x) { x += 3; return function (y) { console.log((x++) + y + (--i)); }};var f = fn(1);f(2);fn(3)(4);f(5); 答案:f(2) => ...
  • HTTP協議的發展歷史 HTTP/0.9 0.9版本是第一個定稿的HTTP版本,相對較為簡陋。它有以下特點: 只有一個命令GET 沒有header等描述數據的信息 伺服器發送完畢,就關閉TCP連接 註意一點,0.9版本的HTTP協議只要伺服器發送完畢,就直接關閉TCP連接,也就是說,一次TCP連接只 ...
  • 方法一: 容器確定寬高:知識點:transform只能設置在display為block的元素上。 方法一效果圖: 方法二: ...
  • Day3 Form表單 一.form表單 :提交數據 表單在網頁中主要負責數據採集功能,它用<form>標簽定義。 用戶輸入的信息都要包含在form標簽中,點擊提交後,<form>和</form>裡面包含的數據將被提交到伺服器或者電子郵件里。 所有的用戶輸入內容的地方都用表單來寫,如登錄註冊、搜索框 ...
  • 協議可以實現前後端全雙工通信,從而取代浪費資源的長輪詢。在此協議的基礎上,可以實現前後端數據、多端數據,真正的 實時響應 。在學習 的過程中,實現了一個簡化版群聊,過程和代碼詳細記錄在這篇文章中。 本篇文章來自 "董沅鑫的個人網站" ,引用、轉載請指明出處 。 查看更多知識,或者技術交流:請訪問 " ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...