Closed xiaodongzai closed 6 years ago
instantiate postConstruct Thanks!
ok
初始化方法直接放在ViewModel的constructor中和使用postConstructor有什么区别吗?
目前没有行为上的区别(以后不一定)。从严格的语义来讲,constructor只应该包含类成员的数据初始化,而不应该触发副作用。副作用应该由 bean 的生命周期钩子来完成,这里就是 postConstruct
明白了,多谢
postConstructor只适用于ViewModel,而Store没有提供,Store中可能还是有这种适用场景的?还是说Store中只应该有数据初始化,不应该有副作用。
我想了一下,这里的设计可能要调整一下。有些地方跟我早期的想法有点不一样。 应该是只为 Store 提供 postConstruct,而 ViewModel 不提供。
在目前的业务组件开发中,ViewModel 角色基本与组件的 LocalState 角色重叠了,即 ViewModel ≈ React/Vue/Angular Class Component ≈ AngularJS Controller,没必要将 ViewModel 从 class component 中独立出来增加分层负担。ViewModel 也就能自然的获得随组件生命周期存活的能力,而不需要额外的 connector(mmlpx-xxx)之类。
相反的 Store 有初始化后 lazy evaluation 但没有 post destroy 的需求。
released v4.0.0
ViewModel 也就能自然的获得随组件生命周期存活的能力
也就是说大多数ViewModel仅适用于一个ContainerComponent。不过针对一些特殊场景,应该也可以设计通用的ViewModel,同一份数据对应多个不同的View展示。
相反的 Store 有初始化后 lazy evaluation 但没有 post destroy 的需求。
这个post该怎么理解,包括postConstruct,为什么不用init,有什么语义上的区别?
也就是说大多数ViewModel仅适用于一个ContainerComponent。不过针对一些特殊场景,应该也可以设计通用的ViewModel,同一份数据对应多个不同的View展示。
是可以的。
这个post该怎么理解,包括postConstruct,为什么不用init,有什么语义上的区别?
post 对应的是 pre。post construct/destroy 指的是方法在组件 初始化/销毁 完成之后触发。
thanks~
postConstruct,instantiate 这两个api文档中缺少使用说明,建议完善下。