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.可以写组件了
<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)
}
})
}
})
}
}
vue登录注册实践的更多相关文章
- Vue登录注册,并保持登录状态
关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法. 项目中有一 ...
- vue登录注册及token验证
// router.jsimport Vue from 'vue'import VueRouter from 'vue-router' Vue.use(VueRouter) const routes ...
- 用vue开发一个app(4,一个久等了的文章)H5直播平台登录注册(1)
我上一篇关于vue的文章和这一篇时间隔了有点久了.最近终于写完了. 因为我一直想写个有点实绩的东西,而不是随便写一个教程一样东西.结合最近在项目中学到的经验和我的一点创意. 首先介绍下这是个什么! H ...
- Vue+localstrong登录注册,并保持登录状态
在router.js中添加meta区分 比如登录注册页面,不需要登录即可进入,那么我们把meta中的isLogin标志设置为false { //登录 path: '/login', component ...
- 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...
- vue.js+koa2项目实战(三)登录注册模态框
登录注册模态框 注: [Vue warn]: Do not use built-in or reserved HTML elements as component id: diaLog 原因:diaL ...
- Vue学习之路之登录注册实例代码
Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...
- vue koa2 mongodb 从零开始做个人博客(一) 登录注册功能前端部分
0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.准备工作 1.1前端框架 前端使用了基于vue.js的nuxt.js.为什么使用nuxt.js? 首先我做的是博客的项目 ...
- vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)
前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...
随机推荐
- 命令行执行php脚本中的$argv和$argc配置方法
在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚 ...
- Nginx 服务器配置
include:实现对配置文件所包含的文件设定 default_type:默认类型二进制流,当文件类型未定义使用这种方式,用浏览器访问 PHP 文件会出现 下载窗口 log_format:指定日志输出 ...
- pipeline语法学习日记
1.pipeline 整合job的通用代码,比较基本 2.pipeline参数化构建
- word2007导出pdf带书签
1.关闭所有word文档 2.下载Word_2007_SaveAsPDFandXPS_12.0_XiaZaiBa.exe安装 3.如果出错请重启PC
- 安装suds,提示No module named 'client'
最近在研究webservice,但是在线安装suds的时候提示No module named 'client' 提示没有client模块,提示这个错误主要还是因为没有安装client模块 在线安装cl ...
- Django【第3篇】:Django之模板语法
Django框架之第三篇模板语法(重要!!!) 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: ...
- python multiprocessing pool
python 本身是不是单线程这个我真心搞不懂 但是我是来吐槽的: multiprocessing.Pool(precesses = 2) 这个语句曾经让我的内存爆满,死机不解释. 在重装 pytho ...
- SQL把a表字段数据存到b表字段 update,,insert
update SYS_Navigation set SYS_Navigation.PARENT_XH = SYS_Power_menu.parent_id,SYS_Navigation.web_tit ...
- SQL 介绍和操作
1.什么是SQL SQL的全称是“结构话查询语句”(Structured Query Language ),是1974年有Boyce和chamberlin 提出来的.经过多年的发展,SQL语言已经成为 ...
- [luogu]P3939 数颜色[二分]
[luogu]P3939 数颜色 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不同的兔子可能有 相同的颜色.小 C 把她标号从 1 到 n 的 n 只兔子排成长长的一排, ...