学习React也已经一个月了,能写一些简单的组件了,但是就引发了我的一个思考。
所有教程都说React是一个纯View层的框架,但是在我自己使用中,我觉得:
state就是数据的存储啊,可以看做model
在数据可以进行变更的地方比如onChange,onClick做setState的处理,这里对state的数据做处理也会引用视图的变更。这不就是ViewModel嘛
只是在不使用redux的情况,有的时候state很不好管理,但是react还是一个很完整的功能啊,为什么说他只能负责view层呢?还是我对mvvm的理解就是错的呢?
只是说react可以完成你整个项目的功能 但是到了你项目有了处理不了的问题的时候 这个时候就要需要一种架构来帮你解决这些问题 就像你所说的state很难管理 例如flux redux 例如angular的mvvm只是双向数据绑定 实际还是view和modle交互 而且react不需要你做获取dom和操作dom的操作 只需要管理你的数据 也就是state 单向数据流也清晰明了 之所以他只负责view是因为他的渲染能力以及强大的diff可以在view的渲染性能做出很大优化 他是可以完成完整功能的
因为 React 的 props、state 都是局部的、封闭的,数据的管理非 React 的核心功能之一,即纯粹使用 React,当你需要组件之间互相交互数据时,会很麻烦(有时候不可能)。
其核心是用户手动更新数据,React响应数据变化,自动更新View。
因此需要 Redux 之类的来进行数据流管理,而 Redux 之类的是可以脱离 React 单独使用的。
其实跟一代Angular对比一下你就知道为什么React是个纯View框架了。
React并不关心你的state中数据怎么设计,它只帮你把state中的数据渲染到dom上,替代了jquery而且比后者好用的多,性能也棒。
当然Redux之类的属于基于React的拓展了。