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 相关文章推荐
javascript-简单的计算器实现步骤分解(附图)
May 30 Javascript
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
DOM基础教程之使用DOM控制表单
Jan 20 Javascript
Jquery实现textarea根据文本内容自适应高度
Apr 03 Javascript
JavaScript实现图片DIV竖向滑动的方法
Apr 25 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
Apr 01 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
Aug 16 Javascript
Vue如何将页面导出成PDF文件
Aug 17 Javascript
JavaScript实现消消乐的源代码
Jan 12 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
jquery图片切换插件
2015/03/16 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
在python中使用nohup命令说明
2020/04/16 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
教学质量评估实施方案
2014/03/17 职场文书
信访工作汇报材料
2014/10/27 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技