zoukankan      html  css  js  c++  java
  • vue中vuex的五个属性和基本用法

    VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。

    Vuex有五个核心概念:

      stategettersmutationsactionsmodules

      1. state:vuex的基本数据,用来存储变量

       2. geeter:从基本数据(state)派生的数据,相当于state的计算属性

       3. mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。

       回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。

       4. action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。

        5. modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

    store.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    import { setInterval } from 'timers';
    import { stat } from 'fs';
    Vue.use(Vuex) 
    const store = new Vuex.Store({
      state: {
        user_name: '',
        count: 0,
      },
      //设置
      mutations: {
         "SET_MSG": function (state, user_name) {
           state.user_name = user_name 
           console.log('保存', state.user_name)
         },
         // 设置计时器
         'SET_COUNT':function (state) {
          setInterval(function(){
           state.count++
          },1000)
         },
    
        
      },
      // 获取
      getters: {
         "GET_MSG": function (state) {
           console.log('获取1', state.user_name)
            return state.user_name
         },
         // 获取计时器
        'GET_COUNT':function(state){
           return state.count
         },
    
      },
      actions: {
        "SET_MSG": function (state, user_name) {
          console.log('获取2', state.user_name) 
          store.commit("SET_MSG", user_name)
        }
        
      },
      
    })
     export default store
    

     页面中获取 

      computed: mapGetters({
        isBinding: "GET_BINDING_STATE",
      }),
    页面中提交

    this.$store.commit(
                  "SET_FACILITY_NAME_DATA",
                  “value”
                );
  • 相关阅读:
    vue:自定义指令
    vue去掉严格开发,即去掉vue-cli安装时的eslint
    vue路由6:导航钩子
    vue路由5:命名视图
    vue路由3:子路由
    vue组件通信之任意级组件之间的通信
    vue中组件通信之子父通信
    令狐冲也是个情场高手啊
    Java —— 时区(夏令时)问题
    PL/SQL 如何导出INSERT语句
  • 原文地址:https://www.cnblogs.com/lan-cheng/p/14341519.html
Copyright © 2011-2022 走看看