Vue(vue+node.js+mongodb)_退出登录

一、前言

二、主要内容

1、当用户登录之后才会出现“退出登录按钮”

2、登录之后

 3、这里使用mint-ui, “退出登录”按钮的显示隐藏和是否有userInfo的值是一样的,如果存在userInfo就显示这个退出按钮,如果没有登录就不显示

 <section class="profile_my_order border-1px">
              <mt-button type="danger" style="width: 100%" @click="logout" v-if="userInfo._id">退出登录</mt-button>
 </section>

4、点击退出按钮的时候调用,logout方法,给用户一个提示

 methods:{
           logout(){

               MessageBox.confirm(‘确定退出登录吗?‘).then(
                   action => {
                       //确定,确定要请求数据
                       this.$store.dispatch(‘logout‘)
                },
                action => {
                    //取消
                    console.log("取消退出")
            });
           }
       }

5、用vuex来进行状态管理,此时state.js 

(1)state.js

/*定义状态对象*/
export default{

    userInfo:{}//保存提交的用户信息
}

(2)mutation-type.js

export const RECEIVE_USER_INFO = ‘receive_user_info‘//接受用户信息
export const RESET_USER_INFO = ‘reset_user_info‘//重置用户信息

(3)mutations.js

/*
vuex的mutations.js模块
*/

import {
      RECEIVE_USER_INFO,
      RESET_USER_INFO

} from ‘./mutation-types‘
export default{
    //这个是方法名,action 和mutation交互的时候传的是包含这个数据的对象

      [RECEIVE_USER_INFO] (state, {userInfo}){
            state.userInfo = userInfo
      },
      [RESET_USER_INFO] (state){
            state.userInfo = {}
      }

}

(4)actions.js

/*
vuex的actions.js模块
*/
import {

    RECEIVE_USER_INFO,
    RESET_USER_INFO

} from ‘./mutation-types‘

//三个接口函数
import {

    reqUserInfo,
    reqLogout

} from ‘../api‘

export default{

    //同步记录用户信息
    recordUser ({commit},userInfo){
        commit(RECEIVE_USER_INFO,{userInfo})

    },

    //异步获取用户信息,让应用一开始就调用这个方法
    //获取商家列表
    async getUserInfo ({commit, state}){
        //1.发送异步ajax请求,调用上面那个方法,现在的数据是在state里面
        const result = await reqUserInfo()
        //2.提交一个mutation
        if(result.code == 0){
            const userInfo = result.data
            commit(RECEIVE_USER_INFO,{userInfo:result.data})
        }
    },

    async logout({commit, state}){
        const result = await reqLogout()
        if(result.code == 0){
            commit(RESET_USER_INFO)//这个时候重置user信息
        }
    }
}

(5)点击这个确定按钮的时候会触发actions中的logout方法

async logout({commit, state}){
        const result = await reqLogout()
        if(result.code == 0){
            commit(RESET_USER_INFO)//这个时候重置user信息
        }
    }  

(6)logout中的提交commit 到mutations中去,重置user信息

/*
vuex的mutations.js模块
*/

import {
      RECEIVE_USER_INFO,
      RESET_USER_INFO

} from ‘./mutation-types‘
export default{
    //这个是方法名,action 和mutation交互的时候传的是包含这个数据的对象

      [RECEIVE_USER_INFO] (state, {userInfo}){
            state.userInfo = userInfo
      },
      [RESET_USER_INFO] (state){
            state.userInfo = {}
      }

}

三、总结

原文地址:https://www.cnblogs.com/xxm980617/p/10848886.html

时间: 2024-08-13 15:49:04

Vue(vue+node.js+mongodb)_退出登录的相关文章

Vue(vue+node.js+mongodb)_登录注册(密码登录)

一.前言 1.密码登录(分析) 2.验证码部分 3.提交表单 4.保存显示 5.完善功能,首页中如果登录成功之后显示的是图标,没有登录显示的是“注册登录” 6.处理bug(当我们一刷新之后当前登录的信息都没有了) 二.主要内容 1.密码登录(分析) (1)第一步用户输入先提交登录表单信息 2.验证码部分 这里显示的验证码,在通过异步调用获取到,并且在后端存进session中 (1)前端部分 <!--获取验证码:前端--> <input type="text" maxl

Vue.js实践:一个Node.js+mongoDB+Vue.js的博客内容管理系统

项目来源 以前曾用过WordPress搭建自己的博客网站,但感觉WordPress很是臃肿.所以一直想自己写一个博客内容管理器. 正好近日看完了Vue各个插件的文档,就用着Vue尝试写了这个简约的博客内容管理器(CMS). 嗯,我想完成的功能: 一个基本的博客内容管理器功能,如后台登陆,发布并管理文章等 支持markdown语法实时编辑 支持代码高亮 管理博客页面的链接 博客页面对移动端适配优化 账户管理(修改密码) Demo 登陆后台按钮在页面最下方"站长登陆",可以以游客身份登入后

Vue2.0+Node.js+MongoDB 全栈打造商城系统

第1章 课程介绍简单回顾前端近几年的框架模式,了解不同时期下的框架特点.其次介绍Vue框架的背景和核心思想,以及同其它MV*框架的对比.1-1 课程-导学1-2 前端框架回顾1-3 vue概况以及核心思想1-4 vue框架优缺点对比 第2章 Vue基础从0到1,如何搭建一个简单的Vue项目:本章节主要讲解Node和Npm环境的搭建,其次介绍vue-cli脚手架的使用,以及通过详细拆解介绍脚手架生成的配置文件信息,最后给大家介绍了Vue涵盖的基础语法.2-1 nodejs和npm的安装和环境搭建2

node.js+mongodb 爬虫

demo截图: 本demo爬瓜子二手车北京区的数据 (注:需要略懂 node.js / mongodb 不懂也没关系 因为我也不懂啊~~~) 之所以选择爬瓜子二手车网站有两点: 一.网站无需登录,少做模拟登录: 二.数据连接没有加密,直接可以用: 网上很多node.js爬虫的栗子 但大多是一个页面的栗子,很少跟数据库结合的 所以我这个栗子是糖炒的 我的基本思路是这样的 1.先在mongodb里存所有页的连接地址的集合 2.在根据这些链接地址 一个一个的把详细信息爬下来 第一步在搜索页找到翻页的规

Node.JS + MongoDB技术浅谈

看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座          云计算 +大数据 = 未来. 在中国的云计算上基本上是一个概念,个人感觉与当初的SOA没有太大的差别,空泛的理论. 中小型开发的未来 = Node.JS + MongoDB解决,并非说Java就没用了. 1.在前面的话 Java技术始终作为高端软件用户的首选,仅仅要从事大型的软件开发,那么Java都是必需要使用的技

使用Node.js + MongoDB 构建restful API

很多天前已经翻译了一大半了,今天收收尾~ RESTful API With Node.js + MongoDB Translated By 林凌灵 翻译目的:练练手,同时了解别人的思维方式 原文地址:RESTful API With Node.js + MongoDB 12 Sep 2013 我是一名移动应用开发者,我需要某种后端服务用来频繁地处理用户数据到数据库中.当然,我可以使用后端即服务类的网站(Parse, Backendless, 等等-),(译者:国内比较出名的有Bmob).但自己解

《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and AngularJS Web Development>,总的来说是一本讲述如何用Javascript进行B/S架构全栈开发的书. 该书主要讲解4种技术(框架),分为6个部分29个章节.4种技术即Node.js.MongoDB.Express.AngularJS,业内称为MEAN:6个部分我个人理解为: 基础(引言).

AngularJS + Node.js + MongoDB开发的基于位置的通讯录(by vczero)

一.闲扯 有一天班长说了,同学们希望我开发一个可以共享位置的通讯录,于是自己简单设计了下功能.包括用户角色.发表微博.共享位置等等.这次也是有点私心的,为了锻炼最近看的angularjs,于是果断选择Node.js + MongoDB + angular.js的方案.当然,开发Node.js的体会越来越深刻.记得,去年leader告诉我说尽量让node的每一个服务只支撑一个业务功能,这样才能更方便的维护.当时特别想把一个Node服务做的特别强大.现在看来leader的做法是对的,我更加倾向于把n

Node.js+MongoDB+AngularJS Web开发

这篇是计算机类的优质预售推荐>>>><Node.js+MongoDB+AngularJS Web开发> MEAN全栈工程师首部实战书 从服务器到浏览器基于JavaScript的Web应用程序权威指南 内容完整细致可直接用来入门任一技术 编辑推荐 Node.js是一种领先的服务器端编程环境,MongoDB是最流行的NoSQL数据库,而AngularJS正迅速成为基于MVC的前端开发的领先框架.它们结合在一起使得Web程序员能够完全用JavaScript创建从服务器到客户端