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

webpack配置完熱更新會刷新整個頁面

 更新時間:2023年11月27日 09:45:45   作者:程序員超超  
本文主要介紹了webpack配置完熱更新會刷新整個頁面,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

可以在webpack文檔中找到有關(guān)熱更新的詳細(xì)信息,意思就是,開啟熱更新之后,整個頁面你改了哪里,就只更新哪里,其他沒變的,或者保存在緩存里面的內(nèi)容,都不會改變,感謝很神奇!很方便!直接寫個demo測試一下。

index.html

<!DOCTYPE html>
<html lang="zn">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>document</title>
  </head>
  <body>
     <div id="app"></div>
  </body>
</html>

bootstrap.js

import "./index.js";

index.js

let oContainer = document.getElementById("app");

let oDiv1 = document.createElement("div");
let oDiv2 = document.createElement("div");

let count = 0;
let a = "1111";
oDiv1.innerHTML = count;

oDiv1.onclick = () => {
  count++;
  oDiv1.innerHTML = count;
};
oDiv2.innerHTML = a;

oContainer.innerHTML = ''
oContainer.appendChild(oDiv1);
oContainer.appendChild(oDiv2);

webpack.config.js

const HtmlWebpackPlugin = require("html-webpack-plugin");


module.exports = {
  entry: "./bootstrap.js",
  mode: "development",
  devServer: {
    static: "./dist",
    hot: true,
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./index.html",
    }),
  ],
};

package.json

{
  "name": "webpackdevservertest",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "start": "webpack-dev-server"
  },
  "dependencies": {
    "html-webpack-plugin": "^5.5.3",
    "webpack": "^5.89.0",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^4.15.1"
  }
}

注意這里的devServer配置了hot: true,webpack5已經(jīng)自動幫我們引入了webpack.HotModuleReplacementPlugin,所以這里只設(shè)置hot: true就可以熱更新了。

接下來我們來測試一下,執(zhí)行npm start,初始的count是0,a是1,我們點擊oDIv1讓他自增到2,然后修改a的值為11。然后保存代碼,查看頁面。如果這個時候oDIv1的值是2,oDiv2的值是11,那么就說明熱更新配置成功了。但是很遺憾,oDIv1的值被重置為了0,熱更新沒生效。

經(jīng)過再次查看文檔,發(fā)現(xiàn),熱更新其實是需要自己監(jiān)聽module.hot.accept的。也就是說webpack的熱更新并不是開箱即用的,而是只是給我們提供了這樣一個鉤子。

例如改一下bootstrap.js的代碼

import "./index.js";

if (module.hot) {
  module.hot.accept("./index.js", () => {});
}

我監(jiān)聽了index.js的文件變化。然后再次更改,雖然值還是會被重置。但是頁面沒有刷新,頁面是否刷新,大家可以看一下當(dāng)前tab頁每次更新完是否會轉(zhuǎn)圈,如果沒有轉(zhuǎn)圈,就說明沒有刷新頁面,而至于各種狀態(tài)如何保持之前狀態(tài),需要大家自己在module.hot.accept中自行編寫對應(yīng)邏輯。這也說明了無論是vue,還是react都有自己自帶的熱更新的loader或者plugins。

最后總結(jié)一下,webpack的熱更新并不是開箱即用的,而是需要再webpack提供的module.hot.accept函數(shù)中,自行實現(xiàn)對應(yīng)的熱更新之后的邏輯。

到此這篇關(guān)于webpack配置完熱更新會刷新整個頁面的文章就介紹到這了,更多相關(guān)webpack 熱更新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript獲取元素離文檔各邊距離的方法

    javascript獲取元素離文檔各邊距離的方法

    這篇文章主要介紹了javascript獲取元素離文檔各邊距離的方法,以一個自定義函數(shù)形式分析了javascript針對文檔各邊距離的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • JavaScript自定義錯誤與擴(kuò)展Error的示例詳解

    JavaScript自定義錯誤與擴(kuò)展Error的示例詳解

    在任何應(yīng)用程序中,正確處理錯誤都是至關(guān)重要的,JavaScript 提供了一個標(biāo)準(zhǔn)的 Error 對象來管理錯誤,但在實際開發(fā)中,通常需要針對特定場景定制錯誤處理,這時,自定義錯誤和擴(kuò)展 Error 類就顯得尤為重要,本文給大家介紹了JavaScript自定義錯誤與擴(kuò)展Error的示例
    2025-01-01
  • canvas基礎(chǔ)繪制-絢麗倒計時的實例

    canvas基礎(chǔ)繪制-絢麗倒計時的實例

    下面小編就為大家?guī)硪黄猚anvas基礎(chǔ)繪制-絢麗倒計時的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • js+css 實現(xiàn)遮罩居中彈出層(隨瀏覽器窗口滾動條滾動)

    js+css 實現(xiàn)遮罩居中彈出層(隨瀏覽器窗口滾動條滾動)

    本文為大家詳細(xì)介紹下使用js實現(xiàn)遮罩彈出層居中,且隨瀏覽器窗口滾動條滾動,示例代碼如下,感興趣的朋友可以參考下
    2013-12-12
  • js Canvas繪制圓形時鐘效果

    js Canvas繪制圓形時鐘效果

    這篇文章主要為大家詳細(xì)介紹了js Canvas繪制圓形時鐘效果的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 利用JavaScript編寫Python內(nèi)置函數(shù)查詢工具

    利用JavaScript編寫Python內(nèi)置函數(shù)查詢工具

    Python有豐富的內(nèi)置函數(shù)實現(xiàn)各種功能,但查詢內(nèi)置函數(shù)時總是需要百度查,有沒有一個小工具可以單機無網(wǎng)絡(luò)查詢Python內(nèi)置函數(shù),方便自己學(xué)習(xí)編寫Python程序呢?本文就來用JavaScript編寫一個
    2023-02-02
  • 圖片Slider 帶左右按鈕的js示例

    圖片Slider 帶左右按鈕的js示例

    圖片Slider的效果想必大家都有見到過吧,下面使用js簡單實現(xiàn)下,喜歡的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • 使用JavaScript實現(xiàn)一個簡單的哈希映射功能

    使用JavaScript實現(xiàn)一個簡單的哈希映射功能

    哈希表大家應(yīng)該都經(jīng)常用到吧,那么大家有沒有想過哈希表是怎么實現(xiàn)的呢,本文我們就來從一道簡單的題目來了解一下哈希表的簡單原理和實現(xiàn)吧
    2024-02-02
  • 淺談JavaScript的閉包函數(shù)

    淺談JavaScript的閉包函數(shù)

    閉包是有權(quán)訪問另一個函數(shù)作用域中的變量的函數(shù)。首先要明白的就是,閉包是函數(shù)。由于要求它可以訪問另一個函數(shù)的作用于中的變量,所以我們往往是在一個函數(shù)的內(nèi)部創(chuàng)建另一個函數(shù),而“另一個函數(shù)”就是閉包。本文對其進(jìn)行系統(tǒng)分析,需要的朋友可以看下
    2016-12-12
  • 讓iframe自適應(yīng)高度(支持XHTML,支持FF)

    讓iframe自適應(yīng)高度(支持XHTML,支持FF)

    讓iframe自適應(yīng)高度(支持XHTML,支持FF)...
    2007-07-07

最新評論

九台市| 海兴县| 青阳县| 扎鲁特旗| 延长县| 安丘市| 普安县| 如东县| 黎川县| 西峡县| 井研县| 眉山市| 广元市| 鹤山市| 常德市| 汕尾市| 石河子市| 融水| 和林格尔县| 左贡县| 八宿县| 崇州市| 蒙山县| 横峰县| 通化市| 佳木斯市| 南汇区| 共和县| 城口县| 红安县| 扶余县| 禄丰县| 光泽县| 花莲县| 安陆市| 迁西县| 天等县| 涞水县| 元阳县| 渑池县| 托里县|