flux

作者: igor_d140 | 来源:发表于2018-10-07 16:08 被阅读4次

    flux是facebook在2014开源的一款用于构建用户界面的应用程序框架
    核心思想:数据和逻辑永远单向流动

    MVC是一种架构设计模式(数据界面分离)。
    Model(业务数据)
    View(用户界面)
    Controller(控制器:管理逻辑和用户输入)

    MVVM VM替代C
    ViewModel(数据视图,view与model之间的桥梁)

    flux

    //Action -> Dispatcher -> Store -> View >> Action >> Dispatcher ...

    dispatcher(分发事件)
    .register(callback) //注册一个监听器
    .dispatch(action) //分发一个action = { type: 'SUCCESS', payload: data }, type必须,payload、error、meta可选

    store(保存数据)
    负责保存数据并定义修改数据的逻辑,同时调用dispatcher的register方法将自己注册为一个监听器。
    每当我们使用dispatch方法分发一个action时,store注册的监听器就会被调用,同时得到这个action
    作为参数。
    store一般会根据action的type字段来确定是否响应这个action。若需要响应,则会根据action中的信息
    修改store中的数据,并触发一个更新事件
    store对外只暴露一个getter,不暴露setter(外部只读不改)

    view(订阅store中的数据)存在一个controller-view的角色将所有view与store绑定
    显示界面,只能通过dispatcher分发一个action修改数据

    controller-view是整个应用最顶层的view,绑定view和store,定义数据更新与传递的方式。
    在react中,controller-view调用store的setter获取数据并设置为自己的state,在render
    时以props的形式传给自己的子组件。
    当store响应某个action并更新数据后,会触发一个更新事件,这个更新事件就是在controller-view
    监听的。当store更新时,controller-view会重新获取store中的数据,然后调用setstate触发重绘

    actionCreator是用来创建action的

    相关文章

      网友评论

          本文标题:flux

          本文链接:https://www.haomeiwen.com/subject/yuplaftx.html