Open creamidea opened 3 years ago
其实这个图依然是 MVC 相关的知识,还是和 binding 相关。远程数据如何和本地的视图进行交互,更一般的,用户的操作如何反馈到视图上?这一层的 binding 在 Mutations 里面声明。
查看 Mutations 相关的 API,可以发现就是和浏览器 Event 一样的概念:事件 + 实现。事件是 Mutations 里函数的名称,实现是 Mutations 里函数的实现。另外,Mutations 暴露出 commit 方法,通过该方法触发相关事件,进而修改内部的 State。为了降低概念和实现的复杂度,Mutations 里面的实现要求是同步的操作,修改 State 和渲染 View 被安排在同一个操作(tick)里面,而不是被分拆成异步。
那如何进行异步更新呢?通过 Action,所有异步的逻辑在 Action 里面实现。Action 的接口中有 Mutations 暴露的 commit 方法,当动作需要修改状态时调用 commit。定义好的 Action 通过 Dispatch 进行分发。
其它的概念
其实这个图依然是 MVC 相关的知识,还是和 binding 相关。远程数据如何和本地的视图进行交互,更一般的,用户的操作如何反馈到视图上?这一层的 binding 在 Mutations 里面声明。
查看 Mutations 相关的 API,可以发现就是和浏览器 Event 一样的概念:事件 + 实现。事件是 Mutations 里函数的名称,实现是 Mutations 里函数的实现。另外,Mutations 暴露出 commit 方法,通过该方法触发相关事件,进而修改内部的 State。为了降低概念和实现的复杂度,Mutations 里面的实现要求是同步的操作,修改 State 和渲染 View 被安排在同一个操作(tick)里面,而不是被分拆成异步。
那如何进行异步更新呢?通过 Action,所有异步的逻辑在 Action 里面实现。Action 的接口中有 Mutations 暴露的 commit 方法,当动作需要修改状态时调用 commit。定义好的 Action 通过 Dispatch 进行分发。
其它的概念