给vue写一个php的登录注册,用vue写简单的登录注册总结

步骤一

1.安装脚手架:npm install vue-cli -g

2.wepack生成html模版:vue init webpack ' 文件名'

3.安装axios、js-cookie、element-ui、stylus等等常用插件

步骤二

1.在main.js中引入router、element-ui等

import Vue from 'vue'

import store from './store' //可以先忽略

import App from './App'

import router from './router'

import ElementUI from 'element-ui'

import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false

Vue.use(ElementUI)

/* eslint-disable no-new */

new Vue({

el: '#app',

router,

store,

render: h => h(App)

})

2.可以写组件了

提交

export default {

data() {

return {

ruleForm: {

name: '',

pass: ''

},

rules: {

name: [

{ required: true, message: '请输入登录账号', trigger: 'blur' }

],

pass: [

{ required: true, message: '请输入登录密码', trigger: 'blur' }

]

}

}

},

}

步骤三

走到这一步就很懵逼了吧,,, 我也是,所以还是先看到效果先吧

1.注册组件,在router文件这里

import Vue from 'vue'

import Router from 'vue-router'

import Login from 'components/login/index'

const _import = require('./_import_' + process.env.NODE_ENV)//没用上当没看见吧,我就是要写这

Vue.use(Router)

export const constantRouterMap = [

{

path: '/',

component:Login,

name:'登录'

},

]

export default new Router({

routes: constantRouterMap

})

emmmm....我猜组件应该渲染出来了,很好!next

步骤四

关键性的步骤到了,看起来很难的vuex

1.第一步,先写好接口方便调用,放在api文件夹里的login.js

import axios from 'axios'

import { server } from './config'

// 登陆

export const requestLogin = params => {

return axios.post(server + '/jade/user/loginManage.action', params, {

withCredentials: true, // 跨域凭证

transformRequest: [function(data) {

let ret = ''

for (const it in data) {

ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'

} // axios官方文档关于怎么用每个参数是什么说的特别特别清楚,我百度过的

return ret

}],

headers: {

'Content-Type': 'application/x-www-form-urlencoded'

}

}).then(res => {

return Promise.resolve(res.data)

}, err => {

console.log(err)

})

}

2.利用js-cookie插件来存储用户信息

import Cookie from 'js-cookie'

export function getToken() {

return Cookie.get(TokenKey)

}

export function setToken(token) {

return Cookie.set(TokenKey, token)

}

export function removeToken() {

return Cookie.remove(TokenKey)

}

export function getRole() {

return sessionStorage.getItem('rules')

}

3.好了可以写actions了

import { requestLogin } from 'api/login'

import { getToken,setToken,removeToken } from '../../utils/auth'

const user = {

state: {

token: getToken(),

name: '',

avatar: ''

},

mutations: {

SET_TOKEN: (state, token) => {

state.token = token

}

},

actions: {

// 登录

Login ({commit}, userInfo) {

const account = userInfo.account

const password = userInfo.checkPass

return new Promise((resolve, reject) => {

console.log(resolve)

console.log(reject)

let params = {

account: account,

password: password

}

requestLogin(params).then(response => {

const data = response.result

setToken(data.sid)

sessionStorage.setItem('accountType', data.accountType)

commit('SET_TOKEN', data.sid)

resolve(response)

}).catch(error => {

reject(error)

})

})

}

}

}

export default user

3.别忘了要注册store

import Vue from 'vue'

import Vuex from 'vuex'

import user from './modules/user'

Vue.use(Vuex)

const store = new Vuex.Store({

modules: {

user,

}

})

export default store

最后一步使用,回到组件

methods: {

submitForm() {

this.$refs.ruleForm.validate((valid)=>{

if(valid) {

console.log(this.$store)

this.$store.dispatch('Login',this.ruleForm).then((res)=>{

console.log(res)

if(res.success) {

this.$router.push({path:'/'})

}else{

this.$message.error(res.result.error)

}

})

}

})

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值