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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...