什么是react?
react是由facebook开发并开源的js库,它主要用于构建前端用户交互界面(UI)。
react的核心-组件
react的核心就是组件(component),组件组成了整个应用的一部分(例如导航,菜单,内容等等),每一部分都可以分割成一个单独的组件,而每一个组件内部又可以划分成更加细的组件。所以react开发的应用可以看成是一个组件树。每一个react应用至少有一个根组件(root component)。
具体说说组件,你可以像上面所说将组件理解为是一部分页面,但其实组件是一个如下的js对象。
class Navbar{
state={}
render(){
}
}
state主要是用于动态渲染页面的一些数据对象,例如一个数字,一个字符串,一个对象,一个列表等等。render方法会使用state中的数据来最终构成用户看到的页面。
render方法是这个组件最终构成的页面的内容,里面会有很多的html元素。你可以这么理解。
虚拟dom
但其实它返回的是一个react对象,这个对象一直存储在内存中,被称为虚拟dom(vitualDom)。由虚拟dom最终渲染到浏览器的页面上变成真实dom。
当state发生变化时,render方法执行,它会将新生成的虚拟dom和变化之前的虚拟dom进行比较(diff算法),并将比较后发现的不一样的地方渲染到真实的页面dom上。react快的地方就在于此,它并不直接操作dom(jquery就是直接操作dom)。
最后说说react和angular的区别。
angular是一个大型框架,是开发中的一个完整的解决方法,选择angular基本上不用在去考虑其他的库了,它都包含了(基本上哈)
而react只是一个js库,它只负责页面渲染(视图层面)。如果需要路由或者http请求之类的还需要引入其他的库。给了开发者更多的选择和灵活性。
网友评论