vuex1.0你不知道的简单写法

在一些小项目中其实可以不用vuex的,但是在一些大型项目中,vuex必然是必杀技,可以使你方便使用,方便跟踪视图的状态。
1、编写store对象

define([], function() {
    var Vue = require('vue')
    var Vuex = require('src/libs/vuex/vuex.js')
    Vue.use(Vuex)
    var modelA= require('src/libs/vuex/modelA.js')
    // 应用初始状态
    var state = {
        count: 2
    }

    // 定义所需的 mutations
    var mutations = {
        INCREMENT: function(state) {
            state.count++
        },
        DECREMENT: function(state) {
            state.count--
        }
    }
//这一块可以引入模块对象
     var store = new Vuex.Store({
            state: state,
            mutations: mutations,
            modules: {
                test: modelA
            }
        })
        // 创建 store 实例
    return store
})复制代码

2、app中的vuex
需要在启动的时候也就是vue-cli脚手架中的app.vue中把store注入大根目录,一次注入终身受用。如图

vuex

用require引入 store,并注入到 vue的根组件。如果想要实现模块化状态控制,则参考以下3。
3、modelA书写方式
define([], function() {
    var modelA = {
        state:{
            name: 3
        },
        // 定义所需的 mutations
        mutations:{
            INCREMENT: function(state) {
                state.name++
            },
            DECREMENT: function(state) {
                state.name--
            }
        }
    }
    return modelA;
})复制代码

4、子组件中使用

vuex: {
        getters: {
            count: state => state.count//变量必须放这里,这里也可以是函数,当过滤器用
        },
        actions: {
            increment:function(dispatch){
                dispatch.dispatch('INCREMENT')//触发修改变量
            },

            decrement:function(dispatch)
            {
                dispatch.dispatch('DECREMENT')
            }
        }
    },
    created: function() {
    },
`复制代码

同时也可以这样用

this.$store.dispatch('DECREMENT');//触发方法
this.$store.commit('DECREMENT');//触发方法vuex2,在actions里面触发的方法
this.$store.state.count='ssss';//修改变量的值
this.$store.state.test.name='ssss';//修改模块变量的值复制代码

5、测试实例
1、google浏览器的控制台

测试非模块化变量

2.测试模块化变量

模块化测试
  • 可以看出,dispatch会触发方法名相同的函数
  • 相对来说,vuex比window定义的数据更有模块性和追踪性。有问题可以随时交流。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值