使用React和springboot做前后端分離項目的步驟方式
前端React準備
第一步,全局安裝:npm i -g create-react-app
第二步,切換到想創(chuàng)項目的目錄,使用命令:create-react-app 加你要創(chuàng)建的項目名,例如create-react-app hello-react
第三步,進入項目文件夾:cd hello-react
第四步,安裝yarn add axios
第五步,啟動項目:npm start 或者yarn start
第六步,要修改的文件有以下兩個
App.js
import React,{Component} from 'react' import axios from 'axios' export default class App extends Component{ state = { //初始化狀態(tài) aaa:[] } getStudentData = ()=>{ axios.get('http://localhost:3000/api1/ltl/students').then( response => {console.log('成功了',response.data.user); this.setState({aaa:response.data.user}) }, error => {console.log('失敗了',error);} ) } render(){ const {aaa}=this.state console.log("111",aaa) return ( <div> <button onClick={this.getStudentData}>點我獲取學生數(shù)據(jù)</button> <ul> { aaa.map((user)=>{ return ( <li> <div key={user.id}> <p>id: {user.id} 名字:{user.name} 密碼:{user.pwd}</p> </div> </li> ) }) } </ul> </div> ) } }
setupProxy.js
const proxy = require('http-proxy-middleware') module.exports = function(app){ app.use( proxy('/api1',{ //遇見/api1前綴的請求,就會觸發(fā)該代理配置 target:'http://localhost:8080', //請求轉(zhuǎn)發(fā)給誰 changeOrigin:true,//控制服務器收到的請求頭中Host的值 pathRewrite:{'^/api1':''} //重寫請求路徑(必須) }) ) }
后端準備
一、創(chuàng)建springboot項目
二、準備Maven依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency>
三、寫實體類和Controller
User.java
public class User { private Integer id; private String name; private String pwd; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } public User() { super(); } public User(Integer id,String name, String pwd){ this.id=id; this.name=name; this.pwd=pwd; } }
jsonController.java
import com.alibaba.fastjson.JSONObject; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/ltl") public class jsonController { @RequestMapping("/students") public JSONObject jsonTest(){ User user1 = new User(1,"小明","123456xm"); User user2 = new User(2,"小紅","123456xh"); User user3 = new User(3,"小李","123456xl"); List list = new ArrayList<User>(); list.add(user1); list.add(user2); list.add(user3); JSONObject jsonObject2 = new JSONObject(); jsonObject2.put("user",list); System.out.println(jsonObject2); return jsonObject2; } }
前后端啟動
前端默認是3000端口號,后端默認為8080端口號
點擊按鈕可以接收到后端數(shù)據(jù)
點擊按鈕后后端接口成功被訪問
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解java WebSocket的實現(xiàn)以及Spring WebSocket
這篇文章主要介紹了詳解java WebSocket的實現(xiàn)以及Spring WebSocket ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-01-01SpringBoot項目中@RestControllerAdvice全局異常失效問題的解決
@RestController注解是一個用于定義RESTful Web服務的控制器的特殊注解,它是@Controller和@ResponseBody注解的結(jié)合體,意味著你不需要在每個處理請求的方法上都添加@ResponseBody,本文給大家介紹了解決SpringBoot項目中@RestControllerAdvice全局異常失效問題2024-11-11Java SimpleDateFormat中英文時間格式化轉(zhuǎn)換詳解
這篇文章主要為大家詳細介紹了Java SimpleDateFormat中英文時間格式化轉(zhuǎn)換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Java任意長度byte數(shù)組轉(zhuǎn)換為int數(shù)組的方法
這篇文章主要給大家介紹了關(guān)于Java任意長度byte數(shù)組轉(zhuǎn)換為int數(shù)組的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-07-07springboot熱部署class XX cannot be cast&nbs
在使用DevTools進行熱加載時遇到的`classXXcannotbecasttoclassXX`錯誤,以及解決該問題的方法,通過在`resources`目錄下創(chuàng)建`META-INF/spring-devtools.properties`文件,并添加相應的配置,可以有效解決此問題,使DevTools熱加載功能得以正常工作2025-02-02