JoYous-SUN
JoYous-SUN
@huyansheng3 e... 其实还好 第一个,toJS 其实就是在你真正需要用数组的时候,才需要转。比如使用 lodash 的一些数组操作方法之前。Observable 的数组,mobx 本身也提供了一些比较好用的方法,这个文档上有。 第二个,首先 observer(component),是不会调用 cwrp 的,而是直接触发组件的 forceupdate。然后,使用 mobx 的一个核心的思想就是尽可能的观测最小粒度的组件,使用的 observer 越多,更新的效率越高、损耗越小。这个是不同于 react 本身的 props 传递思想,而且一般用了 mobx 的组件,之后抽离出来,封装更公共组件,脱离 mobx 也比较麻烦,当然如果大家都用 mobx 就没啥问题了。
@cllgeek 赞同~ 如果只是共享 state,我觉得足够了。但是大部分情况下,我还是会直接用状态管理,有时候页面应用会越来越复杂,直接上 redux 这种,能够解决很多代码组织,异步方案问题,引用最佳实践,减轻自己的工作量。
@CocaColf 1. 你这个理解基本是正确的。当组件的某个状态,被其他组件多次、频繁的引用,这时候 state 通信的成本就会很高,而且逻辑会比较混乱,而通过 store 来管理会清晰很多。关于什么时候用 state or store,就仁者见仁了。 2. 你举的这个例子,我没有体会出 state 跟 store 的区别。onChange 是一回事,submit 是另一回事,就算input 的 value 放 state 就能取到值了吗,还需要做校验。 3. 通常在项目中,即使是不需要共享的状态,我也会放到 store 里。因为状态管理提供的是一整套的开发规范和流程,比如我的请求就通过 action 触发,我的逻辑就写到 saga...
@yozman 为什么呢。 传不传 string,symbol 都是唯一的。string 增加了可读性
@yozman 嗯。确实, string 不是必要的。我说的可读只是因为变量名是大写的不好辨认 😓 所以我觉得 dva 不错。。。 你是怎么定义的... 这些 type
@nsuedu 3q... 好评。 注意点没写例子… 可能当时偷懒了吧。
@yinguangyao 我个人觉得,高阶组件跟你写不写无状态组件是木有关系的,不是说无状态组件的复用性就一定好。首先介绍我理解的无状态组件的使用场景。并不是任何时候,无状态组件都是最佳选择。比如有一些状态维护到内部,要比 container 组件维护要好很多,举个例子,CheckBoxGroup 这种,选中的状态,打钩不打钩,我觉得 CheckBox 自己有个 state 去控制就好了。如果 CheckBox 是无状态的,父组件可能就需要一个数组去维护每一个的选中状态,我觉得是更麻烦一些的。还是看使用场景吧,无状态组件大多数情况下还是比较好的。 然后就是高阶组件,能用 container 就不需要引入高阶组件啊,只是我们意识到有时候高阶组件的复用性,效果更好的时候,才会用。比如做个 loading?某些权限控制? 这些可以被抽进来的逻辑,尽管按类别封进高阶组件,在不同的页面去使用。 所以,并不一定全部都是无状态组件+高阶函数就是最好的。高阶组件只是更优雅的去处理 container 组件不好处理的一些情况。 复用性是牵扯到很多方面的,理解业务,你想好怎么拆分组件,拓展性,组件的写法等等。不知道能不能回答你的问题
嗯,对。这些东西肯定之前是不可能想到的,所以你组件要拆的够细呀。你现在用 React 吗 @yinguangyao
@yinguangyao 哦哦。react 的多页面呗。 协议早就有了... 只不过才被挖出来吧。不过这是法律方面的东西问题了... 咱们也不懂
@stephenzhao Class 啊,组件的类,使用的时候实例化