当前位置:首页 > React

springmvc如何跑react

2026-01-24 03:48:01React

Spring MVC 与 React 集成方法

将 React 集成到 Spring MVC 项目中可以通过以下方式实现,分为开发模式和生产模式两种场景:

开发模式分离运行

在开发阶段,React 前端和 Spring MVC 后端可以独立运行:

  • 使用 create-react-app 或类似工具搭建 React 开发环境
  • 通过 npm start 运行 React 开发服务器(默认端口 3000)
  • Spring MVC 后端运行在另一个端口(如 8080)
  • 在 React 的 package.json 中配置代理:
    "proxy": "http://localhost:8080"
  • 这样 React 会自动将 API 请求转发到 Spring MVC 后端

生产模式整合部署

当需要将 React 打包后与 Spring MVC 一起部署时:

  1. 构建 React 生产包

    npm run build

    这会生成静态文件到 build 目录

  2. 将 React 构建结果复制到 Spring MVC

    • build 目录内容复制到 Spring MVC 的 src/main/resources/static 目录
    • 或配置 Spring 静态资源路径指向 React 构建目录
  3. 配置 Spring MVC 控制器

    @Controller
    public class HomeController {
        @RequestMapping(value = {"/", "/{path:[^\\.]*}"})
        public String forward() {
            return "forward:/index.html";
        }
    }

    这个配置确保所有非静态资源请求都返回 React 的入口文件

  4. 配置跨域支持(如果前后端分离部署)

    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/")
                    .allowedOrigins("*")
                    .allowedMethods("*");
        }
    }

前后端通信方式

  • REST API:Spring MVC 提供 @RestController 处理数据请求

  • 使用 axiosfetch 在 React 中调用 API

  • 示例 React 组件调用 API:

    import React, { useEffect, useState } from 'react';
    import axios from 'axios';
    
    function App() {
      const [data, setData] = useState([]);
    
      useEffect(() => {
        axios.get('/api/data')
          .then(response => setData(response.data));
      }, []);
    
      return (
        <div>
          {data.map(item => (
            <div key={item.id}>{item.name}</div>
          ))}
        </div>
      );
    }

构建工具集成

对于更紧密的集成,可以考虑:

springmvc如何跑react

  • 使用 Maven 或 Gradle 插件自动构建 React 项目
  • 示例 Maven 配置:
    <plugin>
      <groupId>com.github.eirslett</groupId>
      <artifactId>frontend-maven-plugin</artifactId>
      <version>1.12.1</version>
      <executions>
        <execution>
          <id>install node and npm</id>
          <goals>
            <goal>install-node-and-npm</goal>
          </goals>
        </execution>
        <execution>
          <id>npm install</id>
          <goals>
            <goal>npm</goal>
          </goals>
        </execution>
        <execution>
          <id>npm run build</id>
          <goals>
            <goal>npm</goal>
          </goals>
          <configuration>
            <arguments>run build</arguments>
          </configuration>
        </execution>
      </executions>
    </plugin>

这种集成方式可以在 Maven 构建过程中自动处理 React 项目的构建,确保前后端资源同步更新。

标签: springmvcreact
分享给朋友:

相关文章

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

如何构建react

如何构建react

构建 React 项目的步骤 安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过命令行验证: node -v npm -v 使用 Create React Ap…

react如何扩展

react如何扩展

扩展 React 项目的常用方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式。通过包裹组件并注入额外属性或逻辑,可以实现功能扩展。例如,一个日志记录的高阶组件: function…

react如何获取光标

react如何获取光标

获取光标位置的方法 在React中获取光标位置通常涉及处理输入框或文本区域的onChange或onSelect事件。以下是几种常见的方法: 通过selectionStart和selectionEnd…

react如何激活跟踪

react如何激活跟踪

激活 React 跟踪的方法 React 跟踪通常指性能监控、状态变更追踪或用户行为分析。以下是几种常见场景的激活方式: 使用 React DevTools React DevTools 是官方…

react 如何使用 apply

react 如何使用 apply

使用 apply 方法的基本概念 在 JavaScript 中,apply 是函数原型上的方法,用于调用函数时指定 this 的值和传递参数数组。React 中可以使用 apply 来绑定组件方法或调…