一看就会的vuex实现登录验证(附案例)


Posted in Javascript onJanuary 09, 2020

一、vuex是啥?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

简单来说,Vuex 类似 Redux 的状态管理器,用来管理Vue的所有组件状态。

当你打算开发大型单页应用(SPA),会出现多个视图组件依赖同一个状态,来自不同视图的行为需要变更同一个状态。

遇到以上情况时候,你就应该考虑使用Vuex了,它能把组件的共享状态抽取出来,当做一个全局单例模式进行管理。这样不管你在何处改变状态,都会通知使用该状态的组件做出相应修改。

vuex大体分为如下几部分:

  • state 用来数据共享数据存储
  • mutation 用来注册改变数据状态
  • getters 用来对共享数据进行过滤操作
  • action 解决异步改变共享数据
  • modules:store的子模块,为了开发大型项目,方便状态管理而使用的

二、vuex使用

1.首先创建一个vue-cli项目,这里不详述。

vue init webpack mylogin

2.安装vuex:

npm install vuex --save

3.在src目录下新建文件夹store,用来存放vuex内容

目录结构如下:

一看就会的vuex实现登录验证(附案例)

4.在main.js中引入vuex

import Vuex from 'vuex'
import store from './store'
Vue.use(Vuex)

一看就会的vuex实现登录验证(附案例)

5.在store文件夹下新建state.js,vuex用来存储数据
内容如下:

const state={
 userInfo:''
}
export default state;

userInfo用来保存用户信息,根据是否有值来判断跳转页面。

6.在store文件夹下新建multation.js,用来修改vuex中存储的数据
内容如下:

const mutations={
 login(state,v){
  state.userInfo=v;
 }
}
export default mutations;

7.在store文件夹下新建index.js,用来初始化vuex
内容如下:

import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import mutations from './multation'

Vue.use(Vuex);
const store =new Vuex.Store({
 state,
 mutations
})
export default store;

此时在浏览器中就可以看到如下(浏览器需增加插件vue devTools):

一看就会的vuex实现登录验证(附案例)

8.本项目界面如下

主页面和登陆页面

一看就会的vuex实现登录验证(附案例)

9.login.vue提交方法如下:

submitBtn(){
 let me=this;
 if(!me.user.username||!me.user.pwd){
  alert("用户名或密码不能为空");
 }
 else {
  this.$store.commit('login',this.user);
  this.$router.push('./');
 }
}

通过commit实现执行multations里刚才定义的login方法。即当点击登陆时state中的userInfo已经被赋值。接下来通过判断此字段是否有值来进行页面跳转。

10.在main.js用router.beforeEach方法对vuex中的userInfo进行判断

router.beforeEach(function(to,from,next){
 if(store.state.userInfo||to.path==='/login'){
  next();
 }
 else {
  next({path:'/login'})
 }
})

效果图:

一看就会的vuex实现登录验证(附案例)

登陆后:

一看就会的vuex实现登录验证(附案例)

案例地址:https://github.com/myweiwei/vuex-login

将不断更新完善,期待您的批评指正!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
May 11 Javascript
基于JS实现Android,iOS一个手势动画效果
Apr 27 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
canvas的神奇用法
Feb 03 Javascript
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
详解用JS添加和删除class类名
Mar 25 Javascript
Vue自定义render统一项目组弹框功能
Jun 07 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
Websocket 向指定用户发消息的方法
Jan 09 #Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 #Javascript
JS实现商品橱窗特效
Jan 09 #Javascript
微信小程序实现页面浮动导航
Jan 08 #Javascript
微信小程序基于movable-view实现滑动删除效果
Jan 08 #Javascript
小程序自定义模板实现吸顶功能
Jan 08 #Javascript
微信小程序静默登录的实现代码
Jan 08 #Javascript
You might like
社区(php&&mysql)五
2006/10/09 PHP
php模板原理讲解
2013/11/13 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
JavaScript delete操作符应用实例
2009/01/13 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
2016/08/16 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
JS简单获取日期相差天数的方法
2017/04/24 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python和Go语言的区别总结
2019/02/20 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
python递归下载文件夹下所有文件
2019/08/31 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
愚人节活动策划方案
2014/03/11 职场文书
教师考核评语
2014/04/28 职场文书
婚纱店策划方案
2014/05/22 职场文书
夏季药店促销方案
2014/08/22 职场文书
三好生演讲稿
2014/09/12 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android