美文网首页
vue 登录模块

vue 登录模块

作者: zsm_59a3 | 来源:发表于2018-12-04 16:19 被阅读0次

api部分

//我是api-login页面,以下是固定写法
import Axios from '@/util/request' //引入axios拦截器
export const register = data => {
  return Axios({ // 获取商品分类列表
    method: 'post',
    url: 'api/users/login/',
    data
  })
}

组件部分

//我是login组件
<template>
  <div class="login">
      <mt-field label="手机号" placeholder="请输入手机号" type="tel" v-model="form.mobile" ></mt-field>
      <p>{{form.tel}}{{form.psd}}</p>
      <mt-field label="密码" placeholder="请输入密码" type="password" v-model="form.password" ></mt-field>
      <mt-button type="primary" size='large' class="m-t-10"  @click="register()">登录</mt-button>   
  </div>
</template>
<script>
import { Field, Button } from 'mint-ui'
export default {
     components: {
    Field,
    Button
  },
   data () {
    return {
      form: {
        mobile: '',
        password: ''
      },
      uid: null,
      token: null
    }
  },
   mounted () {
    this.register()
  },
  methods: {
    async register () {
      let { status, message } = await this.$store.dispatch('register', this.$qs.stringify({'mobile': this.form.mobile, 'password': this.form.password}))//把mobile和password输入的值传给actions
      if (status === 'fail') {
        console.log(message)
        return false
      } //固定写法
      this.uid = sessionStorage.getItem('uid') //本地存储uid
      this.token = sessionStorage.getItem('token') //本地存储token
      console.log('uid', this.uid)
      console.log('token', this.token)
      this.$router.push({path: '/'})//跳转到首页
    }
  }
}
</script>

stroe部分

//在store下新文件login.js
import { register } from '@/api/login' //引入 api
const CODE = 200
export default {
  state: {
    serverInfo: { // 服务端返回的信息
      status: 'fail',
      message: '接口调用失败'
    },
    uid: sessionStorage.getItem('uid')
  },
  actions: {
    async register ({commit, state}, payload) {
      console.log('commit', commit)
      console.log('state', state)
      console.log('register', payload)//组件传参,mobile=13634124377&password=zsm254480433
      // let {data} = await register(payload) //把payload的值传接口
      let data = await register(payload)
      console.log('actions', data) //把payload的值传接口,data就是接口返回的数据
      console.log('actions111', data.data)
      commit('GLOBAL_RES', data.data) //接口里data.data的值传给mutations
      return state.serverInfo
    }
  },
  mutations: {
    GLOBAL_RES (state, {code, message, data}) { //把data里code,message,data
      console.log('mutations', data)
      if (code !== CODE) {
        state.serverInfo = {
          status: 'fail',
          message
        }
        return false
      }
      state.serverInfo = {
        status: 'success',
        data //data数据返回给login.vue组件
      }
      console.log('message', message)
      console.log('data', data)
      console.log('code', data.uid)
      // this.$cookies.set('uid', data.uid)
      // let aa = this.$cookies.get('uid')
      //sessionStorage.setItem('uid', data.uid)
     // sessionStorage.setItem('token', data.token)
    }
  }
}

相关文章

  • vue 登录模块

    api部分 组件部分 stroe部分

  • vue后台模块学习-3

    继续挖掘vue vue 后台登录和 权限模块开发。 https://juejin.cn/post/69593881...

  • vue 登录模块开发总结

    登录模块 需要做路由的守卫,有些模块是需要被保护的,必须登录才能访问。 常见手法是给路由添加meta:{ auth...

  • vue项目登录授权模块

    一个完整的后台项目包含许多错综复杂的模块,其中登录模块是其中较为复杂的模块。 对于登录模块牵涉到不同角色展示的内容...

  • Vue-router路由使用

    1.需要导入vue模块 import Vue from 'vue' 需要导入vue-router模块 import...

  • vue设置导航栏为公共模块部分页面不显示

    1.公共模块的内容可以放在App.vue中 但是通常登录页面是不需要导航的,那么就需要规避登录页这时,就可以采用k...

  • 登录注册修改密码

    1.为什么要设计登录注册修改密码模块 2.登录注册修改密码模块分类 3.如何设计登录注册修改密码模块 4.登录注册...

  • 用户登录和登录后首页

    用户登录 登录后首页 Index.vue Menu.vue 嵌套路由 {path: '/index',name: ...

  • ruby on rails实现登录(记住密码)

    实现登录功能注册模块一般用users登陆模块一般用sessions 配置登录模块路由 准备登录表单页面 编写控制器...

  • React实战博客1---登录模块

    前端模块 1.登录窗口设计 ​ 登录窗包括了3个模块( 登录, 注册, 重置 ), 通过嵌套路由切换状...

网友评论

      本文标题:vue 登录模块

      本文链接:https://www.haomeiwen.com/subject/eeqvcqtx.html