zoukankan      html  css  js  c++  java
  • 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 . 重新运行项目即可。

  • 相关阅读:
    Shipconstructor 2005 破解发布
    活动目录(activate directory)
    上海地铁快成了乞丐天堂
    转载:制造业信息化:计划模拟APS软件驱动敏捷制造
    项目管理的测试版发布
    Introdution RemObject SDK
    怎样在osworkflow中使用BeanShell
    Java class 文件反编译工具 FrontEnd 2.0
    Tribon M3 license keygen
    利用osworkflow实现业务流程
  • 原文地址:https://www.cnblogs.com/hughes5135/p/10609301.html
Copyright © 2011-2022 走看看