欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React使用公共文件夾public問題

 更新時間:2022年12月01日 17:07:10   作者:叉叉醬  
這篇文章主要介紹了React使用公共文件夾public問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

React使用公共文件夾public

在剛學React/Vue的時候,配合webpack腳手架學習的過程中,碰到一個問題會非常疑惑,比如在React中有個Public文件夾可以放靜態(tài)資源,但是在src目錄中同樣有個assets文件夾,這個同樣也是放靜態(tài)資源的,這個就很困惑了,為何放置靜態(tài)資源的地方會有兩個?

兩者區(qū)別

其實放在兩個文件夾區(qū)別就在于是否會被webpack所處理,如果您將文件放入該public文件夾,webpack 將不會處理它,在你打包的時候,會將public文件夾直接復制一份到你構建出來的文件夾中。

而src/assets目錄的文件(前提你在js中有引入),它會被webpack編譯,比如圖片,如果你的圖片小于你在webpack中的loader下設置的limit大?。膳渲茫?,它會被編譯成base64,從而在實際項目中減少http請求

放置在src/assets目錄有以下幾點好處:

  • 腳本和樣式表被縮小并捆綁在一起以避免額外的網絡請求。
  • 缺少文件會導致編譯錯誤,而不是用戶的404錯誤。
  • 結果文件名包含內容哈希,因此您無需擔心瀏覽器緩存舊版本。

當然,在實際項目中,公共文件夾public還是有它的作用的,如果你希望你的文件不被編譯,比如jquery.min.js,或者壓縮好的js插件等,你就可以把文件放在public文件夾中,這樣還可以減少文件構建時間,可以減少構建文件的大小。

換過來想,如果你把所有靜態(tài)資源全部放在assets文件夾中,你會發(fā)現最后打包出來的文件很大,導致首頁白屏時間過長,所以,你可以把一些不會改動的靜態(tài)文件放到public中。

在React中使用公共文件夾public

如果在index.html中,你可以像這樣去使用它:

<img src="%PUBLIC_URL%/image/poster.jpeg" alt="">

只有前綴public可以訪問文件夾中的文件%PUBLIC_URL%。如果需要使用src或中的文件node_modules,則必須將其復制到那里以明確指定將此文件作為構建的一部分的意圖。

當運行npm run build,Create React App將替換%PUBLIC_URL%為正確的絕對路徑,因此即使使用客戶端路由或將其托管在非根URL上,項目也會正常工作。

在JavaScript代碼中,可以process.env.PUBLIC_URL出于類似目的使用:

render() {
? ? return <img src={process.env.PUBLIC_URL + '/img/logo.png'} />;
}

React腳手架public文件介紹

public文件夾下index.js

<!DOCTYPE html>
<html lang="en">
  <head>
		<meta charset="utf-8" />
		<!-- %PUBLIC_URL%代表public文件夾的路徑 -->
		<link rel="icon" href="%PUBLIC_URL%/favicon.ico" rel="external nofollow"  />
		<!-- 開啟理想視口,用于做移動端網頁的適配 -->
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<!-- 用于配置瀏覽器頁簽+地址欄的顏色(僅支持安卓手機瀏覽器) -->
    <meta name="theme-color" content="red" />
    <meta
      name="description"
      content="Web site created using create-react-app"
		/>
		<!-- 用于指定網頁添加到手機主屏幕后的圖標 -->
		<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" rel="external nofollow"  />
		<!-- 應用加殼時的配置文件 -->
		<link rel="manifest" href="%PUBLIC_URL%/manifest.json" rel="external nofollow"  />
    <title>React App</title>
  </head>
  <body>
		<!-- 若瀏覽器不支持js則展示標簽中的內容 -->
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
  </body>
</html>

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 淺談react新舊生命周期鉤子

    淺談react新舊生命周期鉤子

    所謂的生命周期就是指某個事物從開始到結束的各個階段,本文主要介紹了淺談react新舊生命周期鉤子,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • React中super()和super(props)的區(qū)別小結

    React中super()和super(props)的區(qū)別小結

    本文主要介紹了React中super()和super(props)的區(qū)別小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • React中條件渲染的常見方法總結

    React中條件渲染的常見方法總結

    條件渲染在React開發(fā)中非常重要的功能,它允許開發(fā)人員根據條件控制渲染的內容,在創(chuàng)建動態(tài)和交互式用戶界面方面發(fā)揮著至關重要的作用,本文總結了常用的的條件渲染方法,需要的朋友可以參考下
    2024-01-01
  • 使用Jenkins部署React項目的方法步驟

    使用Jenkins部署React項目的方法步驟

    這篇文章主要介紹了使用Jenkins部署React項目的方法步驟,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • React實現登錄表單的示例代碼

    React實現登錄表單的示例代碼

    這篇文章主要介紹了React實現登錄表單的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • React狀態(tài)管理Redux原理與介紹

    React狀態(tài)管理Redux原理與介紹

    redux是redux官方react綁定庫,能夠使react組件從redux store中讀取數據,并且向store分發(fā)actions以此來更新數據,這篇文章主要介紹了react-redux的設置,需要的朋友可以參考下
    2022-08-08
  • 前端 react 實現圖片上傳前壓縮(縮率圖)

    前端 react 實現圖片上傳前壓縮(縮率圖)

    這篇文章主要介紹了前端 react 實現圖片上傳前壓縮(縮率圖),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 提高React界面性能的十個技巧

    提高React界面性能的十個技巧

    眾所周知,性能是Web應用界面的關鍵方面,它直接影響到用戶的使用體驗。本文將向您展示十種提高React UI性能的特定技術和一般方法。
    2021-05-05
  • React實現二級聯動的方法

    React實現二級聯動的方法

    這篇文章主要為大家詳細介紹了React實現二級聯動的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • react滾動加載useInfiniteScroll?詳解

    react滾動加載useInfiniteScroll?詳解

    使用useInfiniteScroll?hook可以處理檢測用戶何時滾動到頁面底部的邏輯,并觸發(fā)回調函數以加載更多數據,它還提供了一種簡單的方法來管理加載和錯誤消息的狀態(tài),今天通過實例代碼介紹下react滾動加載useInfiniteScroll?相關知識,感興趣的朋友跟隨小編一起看看吧
    2023-09-09

最新評論