您的位置:首页 > Web前端 > React

使用 react-hot-loader

2017-06-06 19:07 120 查看
经过 @assassin_cike 提醒有这样一个loader,今天试了一下真的非常好用。
https://segmentfault.com/a/1190000004660311
hot loader 是干嘛的呢?引用官网的一句话就是

React Hot Loader is a plugin for Webpack that allows instantaneous live refresh without losing state while editing React components.

简单的讲,就是使用 react 编写代码时,能让修改的部分自动刷新。但这和自动刷新网页是不同的,因为 hot-loader 并不会刷新网页,而仅仅是替换你修改的部分,也就是上面所说的
without
losing state


用一张图来感受一下:




使用

其实官方(点这里)已经介绍的很清楚了,只是可能一些小细节得自己找一下,我在这里就记录一下具体的使用流程吧。


安装

首先是安装 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: