vue登录注册实例详解


Posted in Javascript onSeptember 14, 2019

步骤一

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.可以写组件了

<template>
 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm login-container">
 <el-form-item label="账号" prop="name">
  <el-input v-model="ruleForm.name"></el-input>
 </el-form-item>
  <el-form-item label="密码" prop="pass">
  <el-input type="password" v-model="ruleForm.pass" auto-complete="off"></el-input>
 </el-form-item>
 <el-form-item>
  <el-button type="primary" @click="submitForm">提交</el-button>
 </el-form-item>
 </el-form>
</template>

<script>
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)
      }
     })
    }
   })
  }
 }

以上就是本次介绍的全部知识点,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
一段批量给页面上的控件赋值js
Jun 19 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
更优雅的事件触发兼容
Oct 24 Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
理解JS事件循环
Jan 07 Javascript
Bootstrap项目实战之子栏目资讯内容
Apr 25 Javascript
Bootstrap组合上、下拉框简单实现代码
Mar 06 Javascript
vue的for循环使用方法
Feb 12 Javascript
深入学习js函数的隐式参数 arguments 和 this
Jun 24 Javascript
在Vue项目中使用Typescript的实现
Dec 19 Javascript
vue 使用v-for进行循环的实例代码详解
Feb 19 Javascript
javascript合并两个数组最简单的实现方法
Sep 14 #Javascript
VUE项目中加载已保存的笔记实例方法
Sep 14 #Javascript
Layui表格行工具事件与数据回填方法
Sep 13 #Javascript
layui使用表格渲染获取行数据的例子
Sep 13 #Javascript
layui-table表复选框勾选的所有行数据获取的例子
Sep 13 #Javascript
layui表格数据复选框回显设置方法
Sep 13 #Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 #Javascript
You might like
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
Syphon 使用方法
2021/03/03 冲泡冲煮
新闻分类录入、显示系统
2006/10/09 PHP
关于时间计算的结总
2006/12/06 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
Python数据存储之 h5py详解
2019/12/26 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
四种会话跟踪技术
2015/05/20 面试题
社区矫正工作方案
2014/06/04 职场文书
基层党员对照检查材料
2014/08/25 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
写给老婆的保证书
2015/02/27 职场文书
党校个人总结
2015/03/04 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书