1.react比jq强势的地方有虚拟DOM,jq每次从服务器拿数据直接重新渲染真实DOM,而react则是第一次渲染就生成虚拟DOM,下次渲染只要这服务器的数据有跟虚拟DOM重复的数据就进行保留,直接在原有虚拟DOM的基础上插入新数据,而后减少每一次的性能输出,达到高效率操作DOM的效果。
2.react页面是JSX方式创建虚拟DOM,JSX(JavaScript XML)作为js的扩展语法相当于是js一些写法的语法糖
3.虚拟DOM其实控制台输出一个普通Object对象,真实DOM则是输出整个标签,虚拟DOM最后被转换为真实DOM呈现在页面上
4.模块化有ES6规范和Commonjs规范,模块就是你把某些方法单独建立一个js文件是为了可以复用,增加可读性和提高运行效率,模块化是应用(项目)中的js都以模块来编写。那么这个应用就是个模块化的应用。
5.组件就是你把页面的某功能(局部内容)的js,html,css这些代码和资源的集合都单独拿出来,独立成一个文件,也是为了可以复用和提高运行效率,组件化就是应用中以多组件的方式实现
6.class创建类后用constructor构造器,对实例做操作的时候才要用,你可以写死,也可以把形参赋值给它,创建类后用extends继承,其中的构造器中要用super拿继承的构造器中的属性,也可以写个同名的方法去改变父类原来的方法。
7.函数式组件需要借助hooks来创建实例,class类创建的组件的this指向你起的类名这个实例对象,react类创建的组件继承React.Component方法之后里面使用render函数写一些标签return后,在外面调用渲染组件的方法渲染到页面(ReactDOM.reader(<组件/>,获取节点)),用类创建的组件实例对象会自动调用render方法;
8.简单组件指你写了一个没有数据改变的页面,复杂组件是指你进行父传子之类的组件数据操作,你动了组件的构造属性改变某些属性值,比如state值。
关于react与vue的对比,一些个人看法
1.react更像是基于原生js写的编程式思想的应用,而vue则是一个经过了高度封装、易上手开发的应用,所以react的代码编写自由度更高。
2.react社区活跃,国外大量使用react,国内使用vue比较多。
3.react一切皆组件,复用性更高。
react通过reactDom.render函数将虚拟dom渲染成真实dom并渲染到页面的某个元素下成为子节点
类组件用的还是比较多的,下方代码使用到了es6的class类继承、解构赋值
state相当于vue的data,而setState是官方指定的修改state数据的方法