|
vuex中的this.$store.dispatch方法
main.js- new Vue({
- el:'#app',
- router,
- store,
- render:h=>h(APP)
- })
复制代码
store/index.js- import Vue from 'vue'
- import Vuex from 'vuex'
- import app from './modules/app'
- import user from '.modules/user'
- import getters from '.getters'
- import permission from './modules/permission'
- Vue.use(Vuex)
- const store=new Vuex.Store({
- modules:{
- permission,
- app,
- user
- },
- getters
- })
- export default store
复制代码
在store/modules文件夹里的user.js,声明user并释放出来。- const user = {
- state: {
- token: '',
- roles: null,
- isMasterAccount:true,
- },
- mutations: {
- SET_TOKEN: (state, token) => {
- state.token ="Bearer " +token
- },
- },
- actions: {
- // 登录
- Login({
- commit
- }, userInfo) {
- return new Promise((resolve, reject) => {
- login(userInfo.account, userInfo.password).then(x => {
- if(x.status==200){
- const tokenV = x.data.token.tokenValue
- commit('SET_TOKEN', tokenV)
- document.cookie=`AuthInfo=Bearer ${tokenV};path:/`;
- token="Bearer "+tokenV;
- //setToken("Bearer " +token)
- resolve();
- }
-
- }).catch(error => {
- console.log("登录失败")
- reject(error)
- })
- })
- },
- }
- }
- export default user
复制代码 注:必须要用- commit(‘SET_TOKEN’, tokenV)
复制代码 调用里的方法,才能在存储成功。- handleLogin() {
- this.loading = true
- this.$store.dispatch('Login', this.loginForm).then(() => {
- this.$router.push({
- path: '/manage/merchant/account'
- }); //登录成功之后重定向到首页
- this.loading = false
- // this.$router.push({ path: this.redirect || '/' })
- }).catch(() => {
- this.loading = false
- })
- }
复制代码- this.$store.dispatch(‘Login’, this.loginForm)
复制代码 来调取里的方法,从而要更新。
vuex 中dispatch 和 commit 的用法和区别
dispatch:含有异步操作,例如向后台提交数据,写法: this.$store.dispatch('action方法名',值)
commit:同步操作,写法:this.$store.commit('mutations方法名',值)
到此这篇关于vuex中的this.$store.dispatch方法的文章就介绍到这了,更多相关vuex中this.$store.dispatch方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/article/266705.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|