目标

使用Vue+ElementUI+axios构建一个非常简单CRUD应用程序,以便您更好地了解它的工作方式。

什么是 axios?

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

安装axios

我们使用 NPM 进行安装

npm install axios

查询

setTodos() {const url = "https://localhost:44399/api/todo?pageIndex=1&pageSize=100";axios.get(url).then((response) => {console.log(response);if (response.data.Code === 0) {this.Todos = response.data.Result;}});
},

新增

createTodo(item) {const url = "https://localhost:44399/api/todo";axios.post(url, item).then((response) => {console.log(response);if (response.data.Code === 0) {this.setTodos();}});this.selectedIndex = -1;this.selectedItem = {};this.addDialogVisible = false;
},

更新

updateTodo(item) {const url = `https://localhost:44399/api/todo/${item.Id}`;axios.put(url, item).then((response) => {console.log(response);if (response.data.Code === 0) {this.setTodos();}});this.selectedIndex = -1;this.selectedItem = {};this.editDialogVisible = false;
},

删除

deleteTodo(index) {const url = `https://localhost:44399/api/todo/${this.Todos[index].Id}`;axios.delete(url).then((response) => {console.log(response);if (response.data.Code === 0) {this.setTodos();}});this.selectedIndex = -1;this.selectedItem = {};
},

完整代码:

<template>
<div style="text-align: left"><el-button type="text" @click="addTodo()">新增</el-button><el-table :data="Todos" style="width: 100%"><el-table-column type="index" width="50"> </el-table-column><el-table-column prop="Name" label="名称"> </el-table-column><el-table-column fixed="right" label="操作" width="100"><template slot-scope="scope"><el-button @click="editTodo(scope.$index)" type="text" size="small">编辑</el-button><el-button @click="deleteTodo(scope.$index)" type="text" size="small">删除</el-button></template></el-table-column></el-table><TodoAddWithUI :dialogVisible="addDialogVisible" :selectedItem="selectedItem" @save="createTodo" @cancel="cancel"></TodoAddWithUI><TodoEditWithUI :dialogVisible="editDialogVisible" :selectedItem="selectedItem" @save="updateTodo" @cancel="cancel"></TodoEditWithUI>
</div>
</template><script>
import axios from "axios";
import TodoAddWithUI from "./TodoAddWithUI.vue";
import TodoEditWithUI from "./TodoEditWithUI.vue";
export default {components: {TodoAddWithUI,TodoEditWithUI,},data() {return {selectedIndex: -1, // 选择了哪条记录selectedItem: {}, // 选中的信息addDialogVisible: false,editDialogVisible: false,Todos: [],};},created: function () {this.setTodos();},methods: {setTodos() {const url = "https://localhost:44399/api/todo?pageIndex=1&pageSize=100";axios.get(url).then((response) => {console.log(response);if (response.data.Code === 0) {this.Todos = response.data.Result;}});},addTodo() {this.addDialogVisible = true;},createTodo(item) {const url = "https://localhost:44399/api/todo";axios.post(url, item).then((response) => {console.log(response);if (response.data.Code === 0) {this.setTodos();}});this.selectedIndex = -1;this.selectedItem = {};this.addDialogVisible = false;},editTodo(index) {this.selectedIndex = index;this.selectedItem = JSON.parse(JSON.stringify(this.Todos[index]));this.editDialogVisible = true;},updateTodo(item) {const url = `https://localhost:44399/api/todo/${item.Id}`;axios.put(url, item).then((response) => {console.log(response);if (response.data.Code === 0) {this.setTodos();}});this.selectedIndex = -1;this.selectedItem = {};this.editDialogVisible = false;},deleteTodo(index) {const url = `https://localhost:44399/api/todo/${this.Todos[index].Id}`;axios.delete(url).then((response) => {console.log(response);if (response.data.Code === 0) {this.setTodos();}});this.selectedIndex = -1;this.selectedItem = {};},cancel() {this.addDialogVisible = false;this.editDialogVisible = false;},},
};
</script>

TodoAddWithUI.vue和TodoEditWithUI.vue代码没有需要访问的Api,在这里就不贴了,其他代码:

小结

目前为止,我们完成了Vue+ElementUI+axios的CRUD,是不是还是挺简单的呀。其实你也可以使用Fetch API,Fetch API 是一个用于此类请求的强大的原生 API。你可能听说过 Fetch API 其中的一个好处,就是你不需要在使用它的时候额外加载一个外部资源。具体的用法跟axios基本上没有区别。

文中用到的代码我们放在:https://github.com/zcqiand/miscellaneous/tree/master/vue

访问vue_一起学Vue:访问API(axios)相关推荐

  1. vue访问php时做增删改查,node连接mysql生成接口,vue通过接口实现数据的增删改查(一)...

    武汉加油遇新是直朋能到分览支体调!中国加油! 想必许多干用是处框它观有理近货框万理架是察放是近学vue的小伙伴想连接数据库,对数据进行增删改查吧,奈何不知道怎么实现.作为一路踩坑的我,为大家带来我的一 ...

  2. 输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue 中使用防抖和节流

    输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue 中使用防抖和节流 参考文章: (1)输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue ...

  3. 出国访学|访问学者申请成功的两大注意事项

    据51访学网了解,每年差不多有十万左右的人争报公派访问学者名额,而最终被国家留学基金委录取的也只有其中的十分之一,残酷低下的淘汰率,让很多人的准备付之东流.失去出国基金委的公派机会就意味着失去公派出国 ...

  4. 深入浅出学 Vue 开发

    课程介绍 前端技术日新月异,每一种新的思想出现,都代表了一种技术的跃进.架构的变化,那么对于目前的前端技术而言,MVVM 的思想已经可以代表当今前端领域的前沿思想理念,Angular.React.Vu ...

  5. vue配置api代理详解与使用方法

    创建的vue框架中,在自动生成的config目录下dev.env.js 'use strict' const merge = require('webpack-merge') const prodEn ...

  6. vue如何解决axios请求前端跨域问题

    一.为什么会出现跨域的问题? 跨域:浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域. 在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题.跨域问 ...

  7. springboot+Vue项目使用axios实现跨域(CROS)

    springboot+Vue项目使用axios实现(CROS)跨域 一.项目背景 二.跨域资源共享 CORS 详解 三.axios跨域实现 3.1 安装qs模块 3.2 axios使用 四.sprin ...

  8. Vue路由之axios配置JWT身份验证

    前言: 认证和授权,其实吧简单来说就是:认证就是让服务器知道你是谁,授权就是服务器让你知道你什么能干,什么不能干(例如下面meta元信息),认证授权俩种方式:Session-Cookie与JWT,下面 ...

  9. 深入浅出学Vue开发:导读

    如果你看了这一篇文章,那么相信你对这次的课程是有兴趣的,同时作为撰写者的我,也感到非常的荣幸. 程序人生 程序人生,我们选择了这个行业,自然希望能够在这里走的更远.我相信没有任何一个人会甘于平庸,大家 ...

最新文章

  1. tensorrt 低精度推理
  2. RedHat 6.5中建立Raid5卷(软件磁盘阵列) ;并且对Raid5卷做磁盘配额
  3. tesseract-ocr的安装及使用
  4. 华为云服务器芯片,云服务器芯片
  5. 华为服务器清除系统日志,清空服务器日志
  6. 油画作品欣赏|奥地利艺术家克里姆特
  7. php mysql update 不成功也不提示_php与MySQL(基本操作)
  8. python如何使用ppip安装xlwt_如何安装python xlwt
  9. PS 钢笔工具如何拖拽滑杆
  10. 《Python编程实践》查漏笔记
  11. keil4 c语言标准,求助!关于KEIL4和C语言
  12. 零极点图定性绘制系统的幅频特性
  13. python playsound 报UnicodeDecodeError
  14. css 图片剪切object-fit属性
  15. Ubuntu Apt 如何使用清华源
  16. ssm基于微信小程序的物流仓储系统vue
  17. html怎么改变网页整体的大小,html设置浏览器大小
  18. html背景音乐教程pdf,HTML插入背景音乐方法【全】
  19. Python​ 重解零基础100题(2)
  20. ipad和android平板应用,排名前100的iPad应用中只有一半支持Android平板

热门文章

  1. Rion®-RCMS报表综合管理系统
  2. 全栈工程师的学习笔记与工作记录
  3. 医疗卫生信息化 医学信息 医疗信息化 医院管理 资料下载
  4. SQL获取某个时间段的数据
  5. python导入数据画多列直方图_在python datafram中使用两列(值、计数)绘制直方图...
  6. 简述php中文件上传过程,简单php文件上传详细说明
  7. 横州中学理科2021高考成绩查询,2021年横县高考状元名单资料,今年横县高考状元多少分...
  8. html5自适应团购,基于HTML5的O2O团购平台的设计与实现
  9. Java根据模板创建excel文件
  10. java datetime int_关于jodatime:Java中DateTime对象之间的小数天数