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 引起的安全问题
Dec 27 Javascript
潜说js对象和数组
May 25 Javascript
js URL参数的拼接方法比较
Feb 15 Javascript
基于jquery的放大镜效果
May 30 Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
每天一篇javascript学习小结(String对象)
Nov 18 Javascript
javascript事件处理模型实例说明
May 31 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
Jun 10 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
Oct 10 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
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
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
php跨服务器访问方法小结
2015/05/12 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
python绘图模块之利用turtle画图
2021/02/12 Python
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
承诺书格式
2014/06/03 职场文书
单位租房协议书范本
2014/12/04 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android