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版本A*寻路算法
Dec 22 Javascript
JavaScript 使用技巧精萃(.net html
Apr 25 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
JavaScript制作淘宝星级评分效果的思路
Jun 23 Javascript
深入浅析AngularJS中的module(模块)
Jan 04 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 Javascript
jQuery动态增减行的实例代码解析(推荐)
Dec 05 Javascript
详解vue slot插槽的使用方法
Jun 13 Javascript
JS内置对象和Math对象知识点详解
Apr 03 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
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
在父页面调用子页面的JS方法
2013/09/29 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
python异常和文件处理机制详解
2016/07/19 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python 12306抢火车票脚本
2018/02/07 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
如何理解python对象
2020/06/21 Python
keras输出预测值和真实值方式
2020/06/27 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
致铅球运动员广播稿精选
2014/01/12 职场文书
初三班主任寄语大全
2014/04/04 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
后勤工作个人总结
2015/02/28 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
高中政治教师教学反思
2016/02/23 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技