为什么说React只是MVC中的V?
为什么很多人认为React只是MVC中的V?
我的理解有如下3点:
1.react中的jsx,包括其中的渲染逻辑,可以看作V,连同其背后的render/diff,负责组件的渲染
2.react组件本身的state和prop,也可以看作M,负责组件的数据状态,M并不仅限于组件树共享的state
3.组件本身封装的事件/行为,也可以是认为C,负责设置和改变数据,C并不仅限于redux的action
因此,在未接入redux的情况下,单个的功能型组件,其本身也可以看作一个局部的MVC模型
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MVVM
中的ViewModel
,并不是一个简单的V
React被认为是视图层的框架是因为它是基于组件的,一切都是组件,而组件就是渲染页面的基础,不论组件中包含的jsx,methods,state,props,都是属于组件内部的。而你说React中的state和prop可以被看作M,其实是错的,因为React本身没有状态管理的概念,这也是为什么会有Redux这类东西存在,因为React本身没法处理各个组件的数据交互,毕竟它只是V层。
如果你说的是一个离线应用,即不需要后端响应的应用,那么可以这么划分。
但一般情况下我们讲 MVC 都是在将系统视为整体,这种情况下你说的
state
、prop
、事件/行为 都是为 渲染视图 这件事服务的,因此 React 在一个系统中只是一个 V。