当前位置: 首页 > news >正文

Javaweb之Axios的详细解析

1.3.3 请求方法的别名

Axios还针对不同的请求,提供了别名方式的api,具体如下:

方法描述
axios.get(url [, config])发送get请求
axios.delete(url [, config])发送delete请求
axios.post(url [, data[, config]])发送post请求
axios.put(url [, data[, config]])发送put请求

我们目前只关注get和post请求,所以在上述的入门案例中,我们可以将get请求代码改写成如下:

axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => { console.log(result.data); })

post请求改写成如下:

axios.post("http://yapi.smart-xwork.cn/mock/169327/emp/deleteById","id=1").then(result => { console.log(result.data); })

1.3.4 案例

  • 需求:基于Vue及Axios完成数据的动态加载展示,如下图所示

  • 其中数据是来自于后台程序的,地址是:http://yapi.smart-xwork.cn/mock/169327/emp/list
  • 分析:

    前端首先是一张表格,我们缺少数据,而提供数据的地址已经有了,所以意味这我们需要使用Ajax请求获取后台的数据。但是Ajax请求什么时候发送呢?页面的数据应该是页面加载完成,自动发送请求,展示数据,所以我们需要借助vue的mounted钩子函数。那么拿到数据了,我们该怎么将数据显示表格中呢?这里就得借助v-for指令来遍历数据,展示数据。

  • 步骤:

    1. 首先创建文件,提前准备基础代码,包括表格以及vue.js和axios.js文件的引入

    2. 我们需要在vue的mounted钩子函数中发送ajax请求,获取数据

    3. 拿到数据,数据需要绑定给vue的data属性

    4. 在<tr>标签上通过v-for指令遍历数据,展示数据

  • 代码实现:

    1. 首先创建文件,提前准备基础代码,包括表格以及vue.js和axios.js文件的引入

    2. 提供初始代码如下:
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ajax-Axios-案例</title> <script src="js/axios-0.18.0.js"></script> <script src="js/vue.js"></script> </head> <body> <div id="app"> <table border="1" cellspacing="0" width="60%"> <tr> <th>编号</th> <th>姓名</th> <th>图像</th> <th>性别</th> <th>职位</th> <th>入职日期</th> <th>最后操作时间</th> </tr> ​ <tr align="center" > <td>1</td> <td>Tom</td> <td> <img src="" width="70px" height="50px"> </td> <td> <span>男</span> <!-- <span>女</span>--> </td> <td>班主任</td> <td>2009-08-09</td> <td>2009-08-09 12:00:00</td> </tr> </table> </div> </body> <script> new Vue({ el: "#app", data: { } }); </script> </html>
    3. 在vue的mounted钩子函数,编写Ajax请求,请求数据,代码如下:

      mounted () { //发送异步请求,加载数据 axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => { }) }
    4. ajax请求的数据我们应该绑定给vue的data属性,之后才能进行数据绑定到视图;并且浏览器打开后台地址,数据返回格式如下图所示:

    5. 因为服务器响应的json中的data属性才是我们需要展示的信息,所以我们应该将员工列表信息赋值给vue的data属性,代码如下:
      //发送异步请求,加载数据 axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => { this.emps = result.data.data; })

      其中,data中生命emps变量,代码如下:

      data: { emps:[] },
    6. 在<tr>标签上通过v-for指令遍历数据,展示数据,其中需要注意的是图片的值,需要使用vue的属性绑定,男女的展示需要使用条件判断,其代码如下:

      <tr align="center" v-for="(emp,index) in emps"> <td>{{index + 1}}</td> <td>{{emp.name}}</td> <td> <img :src="emp.image" width="70px" height="50px"> </td> <td> <span v-if="emp.gender == 1">男</span> <span v-if="emp.gender == 2">女</span> </td> <td>{{emp.job}}</td> <td>{{emp.entrydate}}</td> <td>{{emp.updatetime}}</td> </tr>

完整代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ajax-Axios-案例</title> <script src="js/axios-0.18.0.js"></script> <script src="js/vue.js"></script> </head> <body> <div id="app"> <table border="1" cellspacing="0" width="60%"> <tr> <th>编号</th> <th>姓名</th> <th>图像</th> <th>性别</th> <th>职位</th> <th>入职日期</th> <th>最后操作时间</th> </tr> ​ <tr align="center" v-for="(emp,index) in emps"> <td>{{index + 1}}</td> <td>{{emp.name}}</td> <td> <img :src="emp.image" width="70px" height="50px"> </td> <td> <span v-if="emp.gender == 1">男</span> <span v-if="emp.gender == 2">女</span> </td> <td>{{emp.job}}</td> <td>{{emp.entrydate}}</td> <td>{{emp.updatetime}}</td> </tr> </table> </div> </body> <script> new Vue({ el: "#app", data: { emps:[] }, mounted () { //发送异步请求,加载数据 axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => { console.log(result.data); this.emps = result.data.data; }) } }); </script> </html>
http://www.jsqmd.com/news/1334501/

相关文章:

  • 026西藏基层工作者想晋升?成人大专公共事业管理,助力体制内发展!怎么报名?联系方式是多少? - 最新资讯
  • 2026年石家庄名包回收注意事项 京津冀小强靠谱二奢服务 - 京津冀小强
  • 5分钟掌握Taroify:打造专业小程序界面的终极指南
  • Bilibili视频评论数据采集:如何系统获取完整用户交互信息
  • CodeFlow本地测试指南:使用fixtures验证复杂项目架构分析结果
  • 故障记录---docker僵死
  • 《C++程序设计》阅读笔记【8-结构体】
  • TestDisk与PhotoRec:企业级数据恢复的终极开源解决方案
  • 2026 国开高起专|咸宁职业技术学院机电一体化技术专业招生简章 - 升学择校早知道
  • mysql使用--带搜索条件的查询
  • API中转站接入表格任务:批量摘要、分类和标签怎么做
  • WuWa-Mod终极指南:解锁《鸣潮》无限游戏乐趣的完整教程
  • 武汉专升本记过上岸率:真实数据下的机构选择指南 - 新闻快传
  • 江苏宏帝智能测评:深耕特种暖通的国家级高新技术企业实力解析 - 兔兔不是荼荼
  • c++类与对象(下)
  • 技术深度解析:CaImAn如何革新大规模钙成像数据分析
  • 深入解析Illustrator脚本自动化:基于JavaScript的图形处理算法实现
  • FGO-py终极指南:如何快速实现Fate/Grand Order全自动刷本
  • 大麦自动抢票终极指南:告别手慢烦恼,5分钟快速上手
  • B站下载神器BiliTools:跨平台B站资源下载完整解决方案
  • 贵阳花溪俊顺巧 专业汽车维修服务全解 - 百航
  • 紧急预警:2024Q3起平台将标记“AI生成品牌文案”——3招反向赋能,把标签变信任背书
  • Javaweb之SpringBootWeb案例之 登录功能的详细解析
  • Rightly领衔8款App合规检测工具对比
  • 大数据转大模型:为什么数据能力反而成了包袱?
  • 2026年潍坊实木衣柜定制工厂价全解析及计价避坑指南 - 新闻快传
  • Label Studio实战:如何用开源工具构建企业级AI数据标注平台
  • 手把手搭建 OpenClaw,让 AI 通过自然语言操控你的电脑(含安装包)
  • XSwitch架构深度解析:企业级Chrome请求转发与CORS管理最佳实践
  • 洛雪音乐音源配置完整教程:免费解锁全网无损音乐资源