首頁  >  文章  >  web前端  >  react-hot-loader的用法是什麼

react-hot-loader的用法是什麼

WBOY
WBOY原創
2022-04-21 18:09:252294瀏覽

「react-hot-loader」用於在使用react編寫程式碼時讓修改後的部分自動刷新;「hot-loader」並不會刷新網頁,而是替換修改過的部分,可用「npm install --save-dev react-hot-loader」安裝。

react-hot-loader的用法是什麼

本教學操作環境:Windows10系統、react17.0.1版、Dell G3電腦。

react-hot-loader的用法是什麼

hot loader 是幹嘛的呢?引用官網的一句話就是

簡單的講,就是使用 react 編寫程式碼時,能讓修改的部分自動刷新。

但這和自動刷新網頁是不同的,因為 hot-loader 並不會刷新網頁,而只是替換你修改的部分。

安裝

首先是安裝react-hot-loader

npm install --save-dev react-hot-loader

另外hot-loader 是基於webpack-dev-server,所以還要安裝webpack-dev-server

npm install --save-dev webpack-dev-server

設定

設定webpack-dev-server

使用react-hot-loader 時,首先還是要讓webpack -dev-server 開啟。

在根目錄新建server.js

var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');
new WebpackDevServer(webpack(config), {
  publicPath: config.output.publicPath,
  hot: true,
  historyApiFallback: true
}).listen(3000, 'localhost', function (err, result) {
  if (err) {
    return console.log(err);
  }
  console.log('Listening at http://localhost:3000/')
});
配置 webpack.config.js
然后在 webpack 的配置文件里添加 react-hot-loader。
打开 webpack.config.js
var webpack = require('webpack');
module.exports = {
  // 修改 entry
  entry: [
    // 写在入口文件之前
    "webpack-dev-server/client?http://0.0.0.0:3000",
    "webpack/hot/only-dev-server",
    // 这里是你的入口文件
    "./src/app.js",
  ],
  output: {
    path: __dirname,
    filename: "build/js/bundle.js",
    publicPath: "/build"
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        exclude: /node_modules/,
        // 在这里添加 react-hot,注意这里使用的是loaders,所以不能用 query,应该把presets参数写在 babel 的后面
        loaders: ['react-hot', 'babel?presets[]=react,presets[]=es2015']
      }
    ]
  },
  // 添加插件
  plugins: [
    new webpack.HotModuleReplacementPlugin()
  ]

使用

先執行server.js(當然你可以在package.json 裡面配置,使用npm start 運行)

node server.js

然後照常使用webpack

webpack --display-error-details --progress --colors --watch

推薦學習:《react影片教學

以上是react-hot-loader的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn