lzxb / vuet

允许你定义飙车过程的集中式状态管理模式
MIT License
422 stars 74 forks source link

有没有严格模式的设置? #20

Closed louisscrew closed 6 years ago

louisscrew commented 6 years ago

有没有严格模式的设置,不知道vuet在设计时是不是遵循了单向数据流的概念。如果遵循了单向数据流,那么怎么设置才能不直接修改变量造成了ui改变? 比如我的vuet代码

//vuet 代码
export default new Vuet({
    pathJoin: '-',
    modules: {
        topic: {
            data () {
                return {
                    count: 0
                }
            }
            ,addCount:function(){
                this.count ++;
            }
            ,modules:{
                list:{
                    data(){
                        return {
                            name:"list"
                        }
                    }
                }
            }
        }
    }
});
//vue页面代码
<template>
<div>
    {{topic.count}}
    <button @click="addEvent">++</button>
</div>
</template> 

<script>
export default{
    mixins: [
        mapModules({
            topic: 'topic' // { 别名: '模块路径' }
            ,list:'topic-list'
        })
    ]
    ,methods:{
        addEvent:function(){
            (this.topicModel.count)++
        }
    }
}
</script>

上述的代码中通过addEvent直接就操作了store中的属性,这是案例说违反了单向数据流的严格模式。在严格模式中属性的改变应该通过action来驱动。

出了vuex还有mobx类库,这个类库默认情况也是可以直接修改属性,但是可以配置一下变成严格模式,严格模式下就只能通过action来改变属性。

lzxb commented 6 years ago

这个没有这种概念

lzxb commented 6 years ago

vuet说的单向数据流是指在一个父级组件中连接vuet模块,然后将vuet模块的数据传给子组件,形成单向数据流动。