账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex如何将数据存入store
    24
    0

    问题描述

    刚开始使用vue写功能,loginStore中的data为空,我想的就是可不可以将api.js中的userdata存入store中!

    相关代码

    loginStore.js

    import {
      login
    } from "../Services/api.js";
    import {
      to
    } from "await-to-js";
    import {
      resolve
    } from "path";
    export default {
      state: {
        username: 'admin',
        password: '123456',
        userdata: ''
      },
      mutations: {
        ADD_LOGIN_USER_INFO(
          state, data
        ) { //存入sessionStorage
          sessionStorage.setItem("userdata", JSON.stringify(data)); 
          state.userdata = data;
        },
      },
      actions: {
        async login({
          state,
          commit,
        }) {//登录方法
          let data = await to(
            login.handleLogin({
              userCode: state.username,
              userPassword: state.password
            })
          );
          if (state.username == null || state.username == "" || state.username.replace(/(^\s*)|(\s*$)/g, "") == "") {
            alert("输入的账号为空!");
            return;
          } else if (state.password == null || state.password == "" || state.password.replace(/(^\s*)|(\s*$)/g, "") == "") {
            alert("输入的密码为空!");
            return;
          }
          //表单验证,如果为空或者输入空格就直接return,不将数据传入后台
          console.log(JSON.stringify(data));
          commit("ADD_LOGIN_USER_INFO", data); 
        }
      },
      getters: {
    
      }
    }
    

    loginStore这里的data 打出来是[null,null]

    api.js

    import axios from "axios";
    import Qs from "qs";
    import store from "../store/loginStore"
    let  userdata;
    export  const login = {
      //管理员登录
      async handleLogin() {
        let postData = Qs.stringify({
          userCode: store.state.username,
          userPassword: store.state.password
        });
        return axios({
          method: 'post',
          url: '/login/loginVerify',
          data: postData
        }).then((res) => {
          if (res.data.code == 1) {
            userdata = res.data.result;
            console.log(userdata) //输出的返回的结果
            alert("登录成功!")
          } else {
            alert("登录失败!")
            return;
          }
        }).catch(function (error) {
          console.log(error);
        });
      },
    }
    

    结果

    我想的是data中就有值了,不用在api.js这个搞userdata了

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部