一看就会的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 相关文章推荐
一段好玩的JavaScript代码
Dec 01 Javascript
JQuery从头学起第一讲
Jul 04 Javascript
基于jquery的划词搜索实现(备忘)
Sep 14 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 Javascript
简述Angular 5 快速入门
Nov 04 Javascript
ndm:NPM的桌面GUI应用程序
Oct 15 Javascript
详解jquery和vue对比
Apr 16 jQuery
解决vue-cli输入命令vue ui没效果的问题
Nov 17 Javascript
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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python中单例模式总结
2018/02/20 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
python标准库os库的函数介绍
2020/02/12 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
英文求职信写作小建议
2014/02/16 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
企业金融服务方案
2014/06/03 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
2014年教研室工作总结
2014/12/06 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
体检通知范文
2015/04/21 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫