一看就会的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 相关文章推荐
jquery ajax提交表单数据的两种实现方法
Apr 29 Javascript
浅谈javascript中的作用域
Apr 07 Javascript
javascript动画算法实例分析
Jul 31 Javascript
Javascript之BOM(window对象)详解
May 25 Javascript
AngularJS表格添加序号的方法
Mar 03 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
使用socket.io制做简易WEB聊天室
Jan 02 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 Javascript
JavaScript监听触摸事件代码实例
Dec 30 Javascript
es6 for循环中let和var区别详解
Jan 12 Javascript
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 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学习笔记之 函数声明
2011/06/09 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
js网页版计算器的简单实现
2013/07/02 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
Python3常用内置方法代码实例
2019/11/18 Python
python 弧度与角度互转实例
2020/04/15 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
经典安踏广告词
2014/03/21 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
走进毛泽东观后感
2015/06/04 职场文书
邹越演讲观后感
2015/06/15 职场文书
python_tkinter事件类型详情
2022/03/20 Python
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技