当前位置:首页 > React

react 实现热更新

2026-01-27 09:01:21React

实现 React 热更新(HMR)

热更新(Hot Module Replacement)允许在运行时替换、添加或删除模块,而无需完全刷新页面。React 结合 Webpack 或 Vite 可以轻松实现这一功能。

使用 Webpack 配置 HMR

确保项目已安装 webpack-dev-serverreact-refresh 相关依赖:

npm install --save-dev @pmmmwh/react-refresh-webpack-plugin react-refresh webpack-dev-server

webpack.config.js 中配置:

const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');

module.exports = {
  mode: 'development',
  devServer: {
    hot: true,
  },
  plugins: [
    new ReactRefreshWebpackPlugin(),
  ],
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            plugins: ['react-refresh/babel'],
          },
        },
      },
    ],
  },
};

使用 Vite 配置 HMR

Vite 默认支持 HMR,无需额外配置。确保项目使用 vite-plugin-react(Vite 2.x)或 @vitejs/plugin-react(Vite 3.x+):

npm install --save-dev @vitejs/plugin-react

vite.config.js 中:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
});

验证 HMR 是否生效

启动开发服务器后,修改组件代码并保存。页面应自动更新,且状态(如 React 组件的 useState)不会丢失。

自定义 HMR 行为

对于特定模块,可通过 module.hot API 手动处理更新逻辑:

if (module.hot) {
  module.hot.accept('./MyComponent', () => {
    // 自定义更新逻辑
  });
}

注意事项

  • 仅适用于开发环境,生产环境需禁用。
  • 状态保留依赖 react-refresh,确保 Babel 或 SWC 正确配置。
  • 复杂状态(如 Redux)可能需要额外处理以避免意外行为。

react 实现热更新

标签: react
分享给朋友:

相关文章

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取日期 在 React 项目中,可以通过 Moment.js 库轻松处理日期和时间。以下是几种常见的日期获取方法。 安装 Moment.js 确保项目中已安装 Mome…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Rea…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官…

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…

react如何验证

react如何验证

表单验证方法 在React中验证表单数据通常使用以下几种方式: 内置HTML5验证 利用HTML5原生表单验证属性如required、pattern等,结合form.noValidate属性禁用浏览…