博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
25、vuex改变store中数据
阅读量:4449 次
发布时间:2019-06-07

本文共 1164 字,大约阅读时间需要 3 分钟。

以登录为例:

1、安装vuex:npm install vuex --save

2、在main.js文件中引入:

import store from '@/store/index.js' new Vue({  router,  store,  render: h => h(App)}).$mount('#app')

 

3、在src文件目录下新建一个名为store的文件夹,为方便引入并在store文件夹里新建一个index.js,里面的内容如下:import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)

export default new Vuex.Store({    state: {        Token: '',         userName:''    }, //假设需要在state.userName基础上派生出一个新的状态newUserName出来,就适合使用getters     getters:{ newUserName:state => “Hello”+state.userName} //同步方法    mutations: {        SET_TOKEN(state, params) {            // console.log(params.Token, params.userNo);            state.Token = params.Token;             state.userName=params.userName;
}     },
// 异步方法    actions:{

           SET(context,Object) {

              //处理异步操作
             context.commit('SET_TOKEN',Object)
       }

   }

})

3、在登录页面派发事件:

// 同步 this.$store.commit("SET_TOKEN", payload); // payload 为参数
//异步 
this.$store.dispatch('SET',payload)
 
4、在其他页面获取state中的共享数据:
import { mapState,mapGetters } from "vuex";
computed: {
  ...mapState({
     userName: state => state.userName,
  })
 // 
...mapGetters(["news"])
},
 
在页面dom中引入:{
{userName}}
在methods中调用:this.userName

 

转载于:https://www.cnblogs.com/xlfdqf/p/11238727.html

你可能感兴趣的文章
操作DOM树
查看>>
WPF——TargetNullValue(如何在绑定空值显示默认字符)
查看>>
巧用五招提升Discuz!X运行速度
查看>>
01构建之法阅读笔记
查看>>
mac svn命令 linux同样适用
查看>>
jQuery,ctrl+enter组合事件
查看>>
python sendmail
查看>>
centOS7下安装GUI图形界面
查看>>
如何为XNA创建输入框(how to Create an XNA Textbox)
查看>>
UWP&WP8.1 基础控件——Grid
查看>>
【JavaScript】 直接下载保存文件
查看>>
006 Cisco switch prewired
查看>>
数据结构和算法概览(一)
查看>>
log4net使用具体解释
查看>>
UVA 11774 - Doom's Day(规律)
查看>>
DWZ使用笔记
查看>>
大屏前段框架的实现 ( 一 )
查看>>
EBS销售订单挑库发放处理程序
查看>>
Android使用Jenkins自动化构建测试打包apk
查看>>
Cheap Tricks: Let's Talk About METADATA TypeLibs
查看>>