react现在是一个很流行的框架,那么在学习react之前,希望大家能够了解以下的问题。
1. 为什么建造react
1.1. 已有的框架不能很好的解决前端的问题
因为目前市面上已有的框架不能很好的解决前端视图中所遇到的问题,所有facebook决定重新开发一套框架,这就是react诞生的原因。。
1.2. 理解一下mvc
M:模型层,主要包括数据模型的创建()、添加、修改(拼接、格式化等)、删除、查询(清洗、过滤等)等操作逻辑;
C:控制器层,主要包括两个方面: 1、注册事件并操作DOM,获取用户的输入和操作参数,将参数传递给模型层处理; 2、根据模型层返回的参数进行DOM操作,控制视图来呈现不同的状态用以与用户交互;
V:视图层,主要包括HTML标签、CSS,提供给控制器操作的对象;
1.3. 使用MVC会使问题更复杂
以MVC的模式来构建前端应用,会让问题更加复杂;问题的根源,是 MVC 在服务端引介进来的原理和分离做法到了客户端并不完全一样。
1.3.1. 控制层-视图层的耦合
下面的图解释了在服务器端视图层是如何与控制层交互的。它们之间只有两处接触,都在客户端与服务器端彼此的边界上。
服务器端的 MVC:
但你来看客户端的 MVC ,就会发现问题。控制器很像我们所说的“背后的代码”,极度依赖前面的视图层。而在绝大多数框架中,控制器甚至是在视图层创建的(比如 Angular 的 ng-controller 就是这样的)。
1.3.2. 客户端的MVC:
此外,你再想想单一职责原则,客户端的 MVC 明显打破了这条原则。客户端的控制器代码在某种程度上既负责了事件处理又在掺和业务逻辑。
1.3.3. 臃肿的模型层
细想一下在客户端你放入模型层的数据是什么样的?
其一,你有一些如 users、products 那样的数据,代表你的应用程序状态。再者,你还需要保存 UI 状态——像 showTab、selectedValue 那样的东西。
跟控制器类似,模型层也打破了单一职责原则,因为你没有方法将 UI 状态和应用程序状态的管理分离开来。
网友评论