React思想
React到底是什么?它要解决什么问题?
学习React之前,其实第一个会被问到的问题应该是React到底是什么?它要解决什么问题?
这个问题的答案,我们可以从React的官方网站开始。
A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES - React
官网用两个关键短语描述了React:一个JavaScript的库和构建UI。
它没有用Framework这样一个词来描述自己,有谁用Framework定义自己呢?比如:AngularJS— Superheroic JavaScript MVW Framework。AngularJS不仅仅负责UI,它还提供数据请求,处理,依赖注入。
ReactJS的贡献者之一Pate Huntz在Why did we build React?一文中就明确说明了React不是一个MVC的框架,仅仅构建组合UI。
React is a library for building composable user interfaces. It encourages the creation of reusable UI components which present data that changes over time.
文中这句话里面提到“React鼓励构建可重用的UI组件,它用来展现数据,而这些数据会随着时间而变化”。也许是我翻译的问题,但看上去有点晦涩难懂。
为什么React会和时间扯上关系?
React称它自己是构建UI的库。还有什么是个UI打交道的库,第一直觉当然是Web开发人员必修课“jQuery”,手动操作DOM,多么惬意。
React说,“嘿,你别动了,不劳驾你,你只要告诉我,什么样的数据,用什么样的UI展示就行了,操作DOM的事情我来做。”
这就是React要做的事情:它仅仅表达出应用程序在任时间点应该的样子,当数据变了,React自动处理所有用户界面的更新。