zoukankan      html  css  js  c++  java
  • 25、vuex改变store中数据

    以登录为例:

    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
  • 相关阅读:
    Discuz热搜在哪里设置?
    Discuz如何设置帖子隐藏回复可见或部分可见方法
    新版Discuz!应用中心接入教程(转)
    Diszuz管理面版被锁怎么办?
    vs 2019 调试无法查看变量
    Google Docs 的格式刷快捷键
    chrome 的常用快捷键
    Activiti 数据库表结构
    activiti 报 next dbid
    尚硅谷Java基础_Day2
  • 原文地址:https://www.cnblogs.com/xlfdqf/p/11238727.html
Copyright © 2011-2022 走看看