Web前端开发之前后端交互06——axios

本文详细介绍了axios库在数据请求中的应用,对比了其与jQuery的AJAX方法,并提供了GET和POST操作的代码示例。重点讲解了axios如何简化网络请求流程和参数传递。

axios是什么?

了解了什么是axios后,我们现在要知道axios和jq一样,只不过jq覆盖全面,而axios只专注于网络数据请求,现在我们看一下语法:

首先,

Get方法:

POST方法:

 两种方法的实际操作:

	//axios get方法
	$('.btn').on('click',e=>{
        let url='http://www.liulongbin.top:3006/api/get'
		let obj={
            name:'zs',
			age:20
		}
        axios.get(url,obj).then(res=>{
            console.log(res)
        })
	})

    //axios Post方法
    $('.btn-post').on('click',e=>{
        let url='http://www.liulongbin.top:3006/api/post'
        let obj={
            name:'zs',
            age:20
        }
        axios.post(url,obj).then(res=>{
            console.log(res.data)
        })
    })

ajax方法:

和jQ一样,他也有ajax方法,不过其在不同的类型下需要传入数据到不同的属性中。post=>data,get=>params.

 代码示例:

<think>嗯,用户这次明确提出了想了解前端后端交互的方式和技术栈。从对话历史来看,用户之前可能已经对前后端分工有了基本概念(通过引用3),现在想深入具体的交互机制。用户可能是刚入门的开发者,或者正在做全栈学习的过渡阶段。用户给出的三条引用中,引用1提到了API接口学习路径,引用2讨论了前端技术栈选择,引用3对比了前后端职责——这些正好构成回答的基础框架:先明确交互需求(为什么交互),再介绍具体技术手段(怎么交互),最后落到技术选型(用什么交互)。需要注意用户特别提到“不是真正需求”的提示,说明用户更期待我结合通用知识而非局限于引用内容。因此我决定这样组织:1.先用分层框架解释交互的本质(请求-响应模式),呼应引用3的核心职责划分2.重点展开RESTfulAPI这个最通用的方式,因为引用1提到它是学习起点3.补充SSR和WebSockets等特殊场景方案,覆盖完整技术谱系4.技术栈部分要区分前端请求工具(axios等)和后端框架(Spring/Express等),因为引用2强调技术栈选择的重要性5.最后给实践建议时,特意加入调试工具Postman,解决新人最常见的接口调试痛点在格式上,用户似乎偏好清晰的模块划分(参考之前快速排序的示例),所以用标题分层且保持段落简短。技术术语首次出现时都简单说明,比如解释SSR时用括号注明“服务端渲染”。对了,用户要求行内公式也用LaTeX,不过这个纯技术话题涉及到的数学表达较少,只在解释GraphQL的查询语言时考虑要不要写语法示例。权衡后决定纯文字描述,避免过度复杂化。</think> 以下是前端后端交互的核心方式及技术栈详解,结合最佳实践和行业标准: ### 一、交互核心方式 1. **HTTP(S) 协议请求** - **RESTful API**(主流方式) - 前端通过`GET/POST/PUT/DELETE`等方法请求后端接口 - 数据格式:`JSON`(占90%场景)或`XML` - 状态码规范:`200`(成功)、`401`(未授权)、`500`(服务错误)等 - **GraphQL**(新兴方案) - 前端可定制所需字段,减少冗余数据传输 - 例:查询用户姓名和邮箱 ```graphql query { user(id: "1") { name email } } ``` 2. **实时交互技术** - **WebSocket**(双向通信) - 适用场景:聊天室、实时数据监控(股票行情) - 建立过程: ```mermaid sequenceDiagram 前端->>后端: HTTP Upgrade请求 后端-->>前端: 101 Switching Protocols 前端->>后端WebSocket数据帧 后端->>前端: 实时推送数据 ``` - **SSE**(Server-Sent Events) - 后端单向推送(如新闻播报) - 兼容性优于WebSocket 3. **传统服务端渲染**(SSR) - 后端生成完整HTML(如Java JSP/PHP) - 正在被Next.js/Nuxt.js等现代框架优化 ### 二、前端技术栈(请求发起端) | 工具类型 | 代表技术 | 特点 | |----------------|------------------------|-------------------------------| | 请求库 | Axios(主流)/Fetch API | 支持Promise、拦截器、超时控制 | | 状态管理 | React Query/SWR | 自动缓存API响应 | | 表单处理 | React Hook Form | 高效表单校验+提交集成 | | 类型安全 | TypeScript | 减少接口数据类型错误 | ### 三、后端技术栈(响应端) ```mermaid graph LR A[Web服务器] --> B[Nginx/Apache] C[应用框架] --> D[Node.js/Express/Koa] C --> E[Spring Boot(Java)] C --> F[Django/Flask(Python)] G[数据库] --> H[MySQL/PostgreSQL] G --> I[MongoDB/Redis] J[API网关] --> K[Kong/Apollo] ``` ### 四、减少依赖的最佳实践[^1] 1. **契约驱动开发** - 使用**OpenAPI/Swagger**定义接口规范 - 前后端可并行开发 2. **Mock服务** - 前端通过`Mock.js`模拟接口响应 3. **版本管理** - 接口路径包含版本号:`/api/v1/users` 4. **错误标准化** - 统一错误格式: ```json { "code": "AUTH_001", "message": "Token失效" } ``` ### 五、调试工具推荐 1. **Postman**:接口测试/文档生成 2. **Chrome DevTools**:网络请求分析 3. **Wireshark**:抓包分析(HTTPS需解密) > **关键趋势**:BFF(Backend For Frontend)模式兴起,通过中间层聚合多个后端接口,优化前端数据获取效率[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行物恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值