• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
骑着小毛驴过冬的八阿哥
博客园    首页    新随笔    联系   管理    订阅  订阅

React项目中使用hot-react-loader

在构建react项目时,默认使用的webpack-dev-serve有热刷新功能,但是局限是修改一处会使整个页面刷新

当引入了react-hot-loader时,可以实现局部刷新,即同个页面上,某一处的数据修改不会让整个页面一起刷新

 

 1 import React from 'react';
 2 import ReactDOM from 'react-dom';
 3 import {AppContainer} from 'react-hot-loader';
 4 import App from './App';
 5 
 6 const render = Component => {
 7   ReactDOM.render(
 8     <AppContainer>
10         <Component/>
12     </AppContainer>,
13     document.getElementById('root')
14   )
15 }
16 
17 render(App)
18 if (module.hot) {
19   module.hot.accept('./App', () => {
20     render(App)
21   })
22 }

以上使用module.hot 实现局部刷新,在新版中如下

 1 import React from 'react';
 2 import ReactDOM from 'react-dom';
 3 import {hot} from 'react-hot-loader/root';
 4 import App from './App';
 5 hot(App);
 6 
 7 const render = Component => {
 8   ReactDOM.render(
 9       <Component/>,
10     document.getElementById('root')
11   )
12 }
13 
14 render(App)

 

在react16.6+版本中,在浏览器控制台可能会出现警告

这是因为在react16.6+以后,推荐使用兼容性更好的

@hot-loader/react-dom

来代替react-dom, 可以忽略,如要修正,方法如下:

1 . 先安装

1 yarn add @hot-loader/react-dom -D

2 . 更改别名 webpack.config.js

1 resolve: {
2     alias: {
3       'react-dom': '@hot-loader/react-dom'
4     }
5 }

3 . 重新运行项目即可。

 

posted @ 2019-03-27 17:53  浅草马甲  阅读(2604)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3