让前端飞壁纸小家vue.js

使用axios+vuex来调接口使数据随处可用

2019-04-21  本文已影响14人  玩点小技术

首先安装:axios和vuex

这里推荐使用:vue ui来以插件的形式安装axios,注意vue ui是脚手架3.0才开始有这个,vuex的安装我就不在介绍了请自行安装。

安装好整个项目后包括axios和vuex,这个时候我们再对项目的目录简单的改改下:

import Vue from "vue";
import Vuex from "vuex";
import app from "./modules/app.js"; //modules目录下随意创建你要的文件,这里我创建了app.js文件
import getters from "./getters";
Vue.use(Vuex);
const store = new Vuex.Store({
  modules: { app },
  getters
});
export default store;
import store from "./stores";
<template>
  <div>{{userinfo.username}}</div>
</template>
computed: { //任何一个组件里怎么调用
    userinfo() {
      return this.$store.state.app.userinfo;
    }
  },
import { login, logout } from "@/api/app";
const app = {
  state: {
    userinfo: {},
  },
  mutations: {
    LOGIN_USER_INFO: (state, obj) => {
      state.userinfo = obj;
    }
  },
  actions: {
    // 登录
    doLogin({ commit }, userInfo) {
      return new Promise((resolve, reject) => {
        login(userInfo.username, userInfo.password)
          .then(response => {
            commit("LOGIN_USER_INFO", response.data);
            resolve(true);
          })
          .catch(error => {
            reject(error);
          });
      });
    },
//退出
    doLogout({ commit }) {
      return new Promise((resolve, reject) => {
        logout()
          .then(response => {
            resolve(response);
          })
          .catch(error => {
            reject(error);
          });
      });
    }
  }
};
export default app;
import request from "_u/request";
export function login(username, password) {
  return request({
    url: "/auth/login",
    method: "post",
    data: {
      username,
      password
    }
  });
}
export function logout() {
  return request({
    url: "/auth/logout",
    method: "post"
  });
}
this.$store.diapatch('doLogin',{username:'',password:''}).then(json=>{
  if(json.code == 0){  //做你任何的逻辑处理
    console.log('成功登录')  
  }
})

贴出我utils目录里的auth.js文件内容,你可以在任何一个组件里怎么调用:

import { getStorage, setStorage, removeStorage } from "@/utils/auth";
export function getStorage(key) {
  return sessionStorage.getItem(key);
}

export function setStorage(key, val) {
  return sessionStorage.setItem(key, val);
}

export function removeStorage(key) {
  return sessionStorage.removeItem(key);
}

export function getLocal(key) {
  return localStorage.getItem(key);
}

export function setLocal(key, val) {
  return localStorage.setItem(key, val);
}

export function removeLocal(key) {
  return localStorage.removeItem(key);
}

如果你有不明白的可以在:87ui.com个人网站上找我哦!

上一篇 下一篇

猜你喜欢

热点阅读