react-hot-loader怎么用
本文小编为大家详细介绍“react-hot-loader怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“react-hot-loader怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
“react-hot-loader”用于在使用react编写代码时让修改的部分自动刷新;“hot-loader”并不会刷新网页,而是替换修改的部分,可用“npm install --save-dev 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",
// 这里是你的入口文件
"./class="lazy" data-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-hot-loader怎么用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341