开始

注意:在后面的所有例子,我们都会以Typescript来编写,所以需要你具备一点基础的Typescript知识。

一个简单的例子


class Count extends Tms {
    value: number = 0;
    $plus() {
        this.value++;
    }
}

const count = new Count();

通过Tms提供的Dep对象,监听每一个Commit方法执行完成


count.dep.addSub((event) => {
    console.log(event);
    /** 输出:
        {
            type: '$plus',
            payload: undefined,
            payloads: [],
            target: Count { value: 1 }
        }
     */
});

执行一个Commit方法,更新实例状态

count.$plus();

输出实例状态

console.log(count.value) // => 1

注意Tms的Commit方法Vuex的Mutation方法以及Redux的Reducer方法是类似的,所有更新实例的状态都必须通过Commit,这样才能实现对实例的历史状态进行追踪。