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 . 重新运行项目即可。

  • 相关阅读:
    每位设计师都应该拥有的50个CSS代码片段(下)
    每位设计师都应该拥有的50个CSS代码片段(上)
    canvas基础——绘制简单的图形
    HTML5——canvas基础
    link和@import的有何区别应如何选择
    火焰灯效果导航菜单
    简单的 Jquery 下拉菜单Demo
    git多人协作冲突解决方法
    搭建iis本地测试服务器
    HTML5 <template>
  • 原文地址:https://www.cnblogs.com/hughes5135/p/10609301.html
Copyright © 2011-2022 走看看