和服务端进行交互

前端请求流程

vue-element-admin 中,一个完整的前端 UI 交互到服务端处理流程是这样的:

  • UI 组件交互操作;
  • 调用统一管理的 api service 请求函数;
  • 使用封装的 request.js 发送请求;
  • 获取服务端返回;
  • 更新 data;
    从上面的流程可以看出,为了方便管理维护,统一的请求处理都放在 @/src/api 文件夹中,并且一般按照 model 纬度进行拆分文件,如:
  1. api/
  2. login.js
  3. article.js
  4. remoteSearch.js
  5. ...

request.js

其中,@/src/utils/request.js 是基于 axios 的封装,便于统一处理 POST,GET 等请求参数,请求头,以及错误提示信息等。具体可以参看 request.js。它封装了全局 request拦截器response拦截器统一的错误处理统一做了超时处理baseURL设置等

一个请求文章列表页的例子:

  1. // api/article.js
  2. import request from '../utils/request';
  3. export function fetchList(query) {
  4. return request({
  5. url: '/article/list',
  6. method: 'get',
  7. params: query
  8. })
  9. }
  10. // views/example/list
  11. import { fetchList } from '@/api/article'
  12. export default {
  13. data() {
  14. list: null,
  15. listLoading: true
  16. },
  17. methods: {
  18. fetchData() {
  19. this.listLoading = true
  20. fetchList().then(response => {
  21. this.list = response.data.items
  22. this.listLoading = false
  23. })
  24. }
  25. }
  26. }

从 mock 直接切换到服务端请求

Mock 和联调

原文: https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/server.html