@
xilixjd 1, vue 的 this.state.x = 'y' 和 react 的 this.setState 都可以触发 UI 更新,只是 vue 用了 getter/setter 在使用上更方便,我不明白你对这个 this.setState 有什么歧义
2, this.setState 重新走一遍虚拟 DOM,你是不是不知道 React 在 render 时候能根据 props 是否一样,来判断是否需要 update ?如果你想控制渲染更细腻,完全可以在 SCU 里面去控制渲染。走一遍虚拟 DOM 我认为没什么,如果你觉得是性能问题,那么先考虑一下是不是自己 Component 组合和 Props 的传递方式有问题,这还没用到 redux 的 connect 方法来控制 props 渲染呢。
3, “刚刚去搜了一下 react 的双向绑定”,我希望你是用过 react,并且实际开发过几个项目,对 react 有一定了解了才在这里高山阔论,否则你一知半解都不知道你自己在讲什么,这很可怕。
4, “你听说过本身就是 mvvm 的框架需要实现吗?”,我不明白,简单来说,this.setState+props+onChange 的方式就可以做好一个 APP 的整体数据控制,只是麻烦一点而已,我说的实现就是实现的意思,你不借助 redux/mobx 当然都 OK,不明白你的意思?
5, “除了 this.setState 还有没有其他方式?” 你自己写几个 function,做监听,处理 dispatch,需要更新了就重新 ReactDOM.render()渲染一下传递一下新的 store,这个很难吗?还是说以你的水平,就喜欢 vue 的自动追踪绑定,最好自己一点 function 都不实现,一点处理代码都不写,简简单单的 this.state.x = 'y'就很好了,那这样我觉得也无所谓,你喜欢就好
另外,ReactDOM.render 没有性能问题,我怕你一会又要扯什么性能问题,优雅问题。不,这只是开发者的水平问题而已。