最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React腳手架搭建的學(xué)習(xí)

 更新時(shí)間:2021年12月13日 10:34:37   作者:小小白學(xué)計(jì)算機(jī)  
本文主要介紹了React腳手架搭建的學(xué)習(xí),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、前端工程的復(fù)雜化

如果我們只是開(kāi)發(fā)幾個(gè)小的demo程序,那么永遠(yuǎn)不需要考慮一些復(fù)雜的問(wèn)題:

比如目錄結(jié)構(gòu)如何組織劃分;比如如何管理文件之間的相互依賴;比如如何管理第三方模塊的依賴;比如項(xiàng)目發(fā)布前如何壓縮、打包項(xiàng)目;等等…

現(xiàn)代的前端項(xiàng)目已經(jīng)越來(lái)越復(fù)雜了:

  • 不會(huì)再是在HTML中引入幾個(gè)css文件,引入幾個(gè)編寫的js文件或者第三方的js文件這么簡(jiǎn)單;
  • 比如css可能是使用less、sass等預(yù)處理器進(jìn)行編寫,我們需要將它們轉(zhuǎn)成普通的css才能被瀏覽器解析;
  • 比如JavaScript代碼不再只是編寫在幾個(gè)文件中,而是通過(guò)模塊化的方式,被組成在成百上千個(gè)文件中,我們需要通過(guò)模塊化的技術(shù)來(lái)管理它們之間的相互依賴;
  • 比如項(xiàng)目需要依賴很多的第三方庫(kù),如何更好的管理它們(比如管理它們的依賴、版本升級(jí)等);

為了解決上面這些問(wèn)題,我們需要再去學(xué)習(xí)一些工具:

  • 比如babel、webpack、gulp。配置它們轉(zhuǎn)換規(guī)則、打包依賴、熱更新等等一些的內(nèi)容;
  • 腳手架的出現(xiàn),就是幫助我們解決這一系列問(wèn)題的;

二、腳手架是什么呢?

傳統(tǒng)的腳手架指的是建筑學(xué)的一種結(jié)構(gòu):在搭建樓房、建筑物時(shí),臨時(shí)搭建出來(lái)的一個(gè)框架;

在這里插入圖片描述

編程中提到的腳手架(Scaffold),其實(shí)是一種工具,幫我們可以快速生成項(xiàng)目的工程化結(jié)構(gòu);

  • 每個(gè)項(xiàng)目作出完成的效果不同,但是它們的基本工程化結(jié)構(gòu)是相似的;
  • 既然相似,就沒(méi)有必要每次都從零開(kāi)始搭建,完全可以使用一些工具,幫助我們生產(chǎn)基本的工程化模板;
  • 不同的項(xiàng)目,在這個(gè)模板的基礎(chǔ)之上進(jìn)行項(xiàng)目開(kāi)發(fā)或者進(jìn)行一些配置的簡(jiǎn)單修改即可;
  • 這樣也可以間接保證項(xiàng)目的基本機(jī)構(gòu)一致性,方便后期的維護(hù);

總結(jié):腳手架讓項(xiàng)目從搭建到開(kāi)發(fā),再到部署,整個(gè)流程變得快速和便捷;

三、前端腳手架

對(duì)于現(xiàn)在比較流行的三大框架都有屬于自己的腳手架:

  • Vue的腳手架:vue-cli
  • Angular的腳手架:angular-cli
  • React的腳手架:create-react-app

它們的作用都是幫助我們生成一個(gè)通用的目錄結(jié)構(gòu),并且已經(jīng)將我們所需的工程環(huán)境配置好。
使用這些腳手架需要依賴什么呢?

  • 目前這些腳手架都是使用node編寫的,并且都是基于webpack的;
  • 所以我們必須在自己的電腦上安裝node環(huán)境;

這里我們主要是學(xué)習(xí)React,所以我們還是以React的腳手架工具:create-react-app作為講解;

四、安裝node

React腳手架本身需要依賴node,所以我們需要安裝node環(huán)境:

無(wú)論是windows還是Mac OS,都可以通過(guò)node官網(wǎng)直接下載;

官網(wǎng)地址:https://nodejs.org/en/download/注意:這里推薦大家下載LTS(Long-term support )版本,是長(zhǎng)期支持版本,會(huì)比較穩(wěn)定;

在這里插入圖片描述

下載后,雙擊安裝即可:
1.安裝過(guò)程中,會(huì)自動(dòng)配置環(huán)境變量;
2.安裝時(shí),會(huì)同時(shí)幫助我們安裝npm管理工具;

輸入以下命令:

node --version
npm --version

若出現(xiàn)版本號(hào)則表明安裝成功了

五、包管理工具

什么是npm?

  • 全稱 Node Package Manager,即“node包管理器”;
  • 作用肯定是幫助我們管理一下依賴的工具包(比如react、react-dom、axios、babel、webpack等等);
  • 作者開(kāi)發(fā)的目的就是為了解決“模塊管理很糟糕”的問(wèn)題;

另外,還有一個(gè)大名鼎鼎的node包管理工具yarn:

  • Yarn是由Facebook、Google、Exponent 和 Tilde 聯(lián)合推出了一個(gè)新的 JS 包管理工具;
  • Yarn 是為了彌補(bǔ) npm 的一些缺陷而出現(xiàn)的;
  • 早期的npm存在很多的缺陷,比如安裝依賴速度很慢、版本依賴混亂等等一系列的問(wèn)題;
  • 雖然從npm5版本開(kāi)始,進(jìn)行了很多的升級(jí)和改進(jìn),但是依然很多人喜歡使用yarn;
  • React腳手架默認(rèn)也是使用yarn;
npm install -g yarn

輸入yarn --version,若出現(xiàn)版本號(hào)輸出,則表明安裝成功

六、Yarn和npm命令對(duì)比

在這里插入圖片描述

七、安裝腳手架

補(bǔ)充:在國(guó)內(nèi),某些情況使用npm和yarn可能無(wú)法正常安裝一個(gè)庫(kù),這個(gè)時(shí)候我們可以選擇使用cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

最后一個(gè)需要安裝的是創(chuàng)建React項(xiàng)目的腳手架:

npm install -g create-react-app

輸入create-react-app --version,若出現(xiàn)版本號(hào)輸出,則表明安裝成功

八、創(chuàng)建React項(xiàng)目

現(xiàn)在,我們就可以通過(guò)腳手架來(lái)創(chuàng)建React項(xiàng)目了。

創(chuàng)建React項(xiàng)目的命令如下:

注意:項(xiàng)目名稱不能包含大寫字母

另外還有更多創(chuàng)建項(xiàng)目的方式,可以參考GitHub的readme

create-react-app 項(xiàng)目名稱

在這里插入圖片描述

創(chuàng)建完成后,進(jìn)入對(duì)應(yīng)的目錄,就可以將項(xiàng)目跑起來(lái):

cd 01-test-reactyarn start

在這里插入圖片描述

在這里插入圖片描述

九、目錄結(jié)構(gòu)分析

在這里插入圖片描述

十、了解PWA

整個(gè)目錄結(jié)構(gòu)都非常好理解,只是有一個(gè)PWA相關(guān)的概念:

  • PWA全稱Progressive Web App,即漸進(jìn)式WEB應(yīng)用;
  • 一個(gè) PWA 應(yīng)用首先是一個(gè)網(wǎng)頁(yè), 可以通過(guò) Web 技術(shù)編寫出一個(gè)網(wǎng)頁(yè)應(yīng)用;
  • 隨后添加上 App Manifest 和 Service Worker 來(lái)實(shí)現(xiàn) PWA 的安裝和離線等功能;
  • 這種Web存在的形式,我們也稱之為是 Web App;

PWA解決了哪些問(wèn)題呢?

  • 可以添加至主屏幕,點(diǎn)擊主屏幕圖標(biāo)可以實(shí)現(xiàn)啟動(dòng)動(dòng)畫以及隱藏地址欄;
  • 實(shí)現(xiàn)離線緩存功能,即使用戶手機(jī)沒(méi)有網(wǎng)絡(luò),依然可以使用一些離線功能;
  • 實(shí)現(xiàn)了消息推送;
  • 等等一系列類似于Native App相關(guān)的功能;

十一、webpack是什么

我們說(shuō)過(guò)React的腳手架是基于Webpack來(lái)配置的:

  • webpack 是一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器(module bundler);
  • 當(dāng) webpack 處理應(yīng)用程序時(shí),它會(huì)遞歸地構(gòu)建一個(gè)依賴關(guān)系圖(dependency graph),其中包含應(yīng)用程序需要的每個(gè)模塊,然后將所有這些模塊打包成一個(gè)或多個(gè) bundle;

在這里插入圖片描述?

十二、腳手架中的webpack

在這里我們暫時(shí)不展開(kāi)來(lái)講webpack,因?yàn)槔锩娴膬?nèi)容是非常多的(后續(xù)會(huì)有專門講webpack的專題);
但是,很奇怪:我們并沒(méi)有在目錄結(jié)構(gòu)中看到任何webpack相關(guān)的內(nèi)容?

原因是React腳手架講webpack相關(guān)的配置隱藏起來(lái)了(其實(shí)從Vue CLI3開(kāi)始,也是進(jìn)行了隱藏);

如果我們希望看到webpack的配置信息,應(yīng)該怎么來(lái)做呢?

  • 我們可以執(zhí)行一個(gè)package.json文件中的一個(gè)腳本:"eject": "react-scripts eject"
  • 這個(gè)操作是不可逆的,所以在執(zhí)行過(guò)程中會(huì)給與我們提示;
yarn eject

在這里插入圖片描述

十三、腳手架中的webpack

在這里插入圖片描述

十四、文件結(jié)構(gòu)刪除

通過(guò)腳手架創(chuàng)建完項(xiàng)目,很多同學(xué)還是會(huì)感覺(jué)目錄結(jié)構(gòu)過(guò)于復(fù)雜,所以我打算從零帶著大家來(lái)編寫代碼。
我們先將不需要的文件統(tǒng)統(tǒng)刪掉:

將src下的所有文件都刪除將public文件下出列favicon.ico和index.html之外的文件都刪除掉

在這里插入圖片描述?

十五、開(kāi)始編寫代碼

在src目錄下,創(chuàng)建一個(gè)index.js文件,因?yàn)檫@是webpack打包的入口。
在index.js中開(kāi)始編寫React代碼:

我們會(huì)發(fā)現(xiàn)和寫的代碼是邏輯是一致的;只是在模塊化開(kāi)發(fā)中,我們需要手動(dòng)的來(lái)導(dǎo)入React、ReactDOM,因?yàn)樗鼈兌际窃谖覀儼惭b的模塊中;

在這里插入圖片描述

如果我們不希望直接在 ReactDOM.render 中編寫過(guò)多的代碼,就可以單獨(dú)抽取一個(gè)組件App.js:

在這里插入圖片描述

到此這篇關(guān)于React腳手架搭建的學(xué)習(xí)的文章就介紹到這了,更多相關(guān)React 腳手架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用react和redux構(gòu)建一個(gè)簡(jiǎn)單的計(jì)數(shù)器

    使用react和redux構(gòu)建一個(gè)簡(jiǎn)單的計(jì)數(shù)器

    這篇文章主要為大家詳細(xì)介紹了如何使用react和redux構(gòu)建一個(gè)簡(jiǎn)單的計(jì)數(shù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • React里的Fragment標(biāo)簽的具體使用

    React里的Fragment標(biāo)簽的具體使用

    本文主要介紹了React里的Fragment標(biāo)簽的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • react實(shí)現(xiàn)拖拽模態(tài)框

    react實(shí)現(xiàn)拖拽模態(tài)框

    這篇文章主要為大家詳細(xì)介紹了react實(shí)現(xiàn)拖拽模態(tài)框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • React中組件通信的幾種主要方式

    React中組件通信的幾種主要方式

    React知識(shí)中一個(gè)主要內(nèi)容便是組件之間的通信,以下列舉幾種常用的組件通信方式,通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-10-10
  • 如何使用React構(gòu)建一個(gè)擲骰子的小游戲

    如何使用React構(gòu)建一個(gè)擲骰子的小游戲

    這篇文章主要介紹了如何使用React構(gòu)建一個(gè)擲骰子的小游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 在Create React App中使用CSS Modules的方法示例

    在Create React App中使用CSS Modules的方法示例

    本文介紹了如何在 Create React App 腳手架中使用 CSS Modules 的兩種方式。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
    2019-01-01
  • ReactJS中的自定義組件實(shí)例代碼

    ReactJS中的自定義組件實(shí)例代碼

    React 是一個(gè)用于構(gòu)建用戶界面的 JAVASCRIPT 庫(kù)。這篇文章主要介紹了ReactJS中的自定義組件的代碼講解,需要的朋友可以參考下
    2019-11-11
  • React中的refs的使用教程

    React中的refs的使用教程

    本篇文章主要介紹了React中的refs的使用教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 詳解create-react-app 自定義 eslint 配置

    詳解create-react-app 自定義 eslint 配置

    這篇文章主要介紹了詳解create-react-app 自定義 eslint 配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 使用React?Router?v6?添加身份驗(yàn)證的方法

    使用React?Router?v6?添加身份驗(yàn)證的方法

    這篇文章主要介紹了使用React?Router?v6?進(jìn)行身份驗(yàn)證完全指南,本文將演示如何使用React?Router?v6創(chuàng)建受保護(hù)的路由以及如何添加身份驗(yàn)證,需要的朋友可以參考下
    2022-05-05

最新評(píng)論

秀山| 沈阳市| 杭州市| 高台县| 呼伦贝尔市| 肥城市| 东源县| 泸西县| 聂拉木县| 玉环县| 招远市| 荔浦县| 集安市| 营口市| 荆州市| 彭山县| 洮南市| 阳信县| 平塘县| 西乌| 社会| 南和县| 铁岭县| 遂川县| 泰和县| 三明市| 将乐县| 南京市| 绥化市| 通河县| 乌拉特前旗| 广东省| 翁牛特旗| 龙口市| 肃宁县| 中宁县| 德阳市| 新宁县| 木兰县| 平远县| 多伦县|