1. 程式人生 > >axios入門筆記

axios入門筆記

json 分享 spa batch progress rule 進行 項目 回調

今天在GitHub上看到別人的項目,正好最近打算學學axios,也算是集齊vue全家桶,說不定可以召喚神龍。

首先要用axios,先引入:npm install axios 然後在你要使用的地方直接import axios from ‘axios‘即可編寫相應代碼

可直接在src下創建api文件夾存放axios文件(api.js和index.js),就像這樣:

api.js文件中定義封裝請求:

import axios from axios;

let base = ‘‘;

export const requestLogin = params => { return axios.post(`${base
}/login`, params).then(res => res.data); }; export const getUserList = params => { return axios.get(`${base}/user/list`, { params: params }); }; export const getUserListPage = params => { return axios.get(`${base}/user/listpage`, { params: params }); }; export const removeUser = params => { return
axios.get(`${base}/user/remove`, { params: params }); }; export const batchRemoveUser = params => { return axios.get(`${base}/user/batchremove`, { params: params }); }; export const editUser = params => { return axios.get(`${base}/user/edit`, { params: params }); }; export const addUser = params
=> { return axios.get(`${base}/user/add`, { params: params }); };

index.js是入口文件:

import * as api from ‘./api‘;

export default api;

下面說說post請求操作

以實例代碼舉例子:

      handleSubmit2(ev) {
        var _this = this;
        this.$refs.ruleForm2.validate((valid) => {
          if (valid) {    //如果輸入的賬號密碼有值
            
            this.logining = true;   //顯示loading圖標
            //NProgress.start();
            var loginParams = { username: this.ruleForm2.account, password: this.ruleForm2.checkPass };
            let base=‘‘;
             axios.post(`${base}/login`,loginParams).then( res => {console.log(res);return res.data} ).then(data => {
              this.logining = false;
              //NProgress.done();
              let { msg, code, user } = data;
              if (code !== 200) {
                this.$message({
                  message: msg,
                  type: ‘error‘
                });
              } else {
                sessionStorage.setItem(‘user‘, JSON.stringify(user));
                this.$router.push({ path: ‘/table‘ });
              }
            });
          } else {
            console.log(‘error submit!!‘);
            return false;
          }
        });
      }

這是一個login檢測的函數,主要說這一小部分:

axios.post(`${base}/login`,loginParams).then( res => {return res.data} ).then(data => {this.logining = false;if (data.code !== 200) {
                this.$message({
                  message: data.msg,
                  type: ‘error‘
                });
              } else {
                sessionStorage.setItem(‘user‘, JSON.stringify(data.user));  //這裏是在sessionStorage中存儲用戶信息,這個是一定要有的!
                this.$router.push({ path: ‘/table‘ });  //這裏是配置請求完成後或登錄完成後跳轉到的路徑
              }
            });

這裏axios先post發送請求,請求發送出去後會得到一個response,就是回調函數中的參數res,consolelog發現這個res是個json,裏面包含如下內容:

技術分享圖片

一般而言有用的是data這個對象,所以第一個回調函數返回res.data,第二個回調函數就會利用返回的data對象中的各個屬性來判斷response情況,包括常用的msg、code、user等信息。

總結:

使用axios進行login登錄驗證:1.發送axios.post( url, { params } ).then(response =>{return res.data} ) .then(data => {...} 獲得response下的data對象

              2.根據獲得的data對象判斷login請求是否正確

              3.若請求完成,即data.code==200,需要在sessionStroage中寫入用戶信息(data.user),並配置跳轉路徑

只是很基礎的axios入門,如有錯誤,還請指正!

axios入門筆記