1. 声明式编程
命令式编程:一步一步指导计算机应该怎么做,在完成之前,计算机并不知道我要做什么,只是按照我给的要求一步步执行代码。
声明式编程:我只是告诉计算机要做什么,并不告诉它要怎么做,比如下边的代码,我只是告诉它你执行这个reduce函数就好了,具体怎么执行我不知道。
声明式编程就是拿来主义,拿已经封装好的纯函数实现,实际上的执行步骤不比命令式编程少,但是纯函数具有极高的稳定性,并且减少了程序员的负担。
命令式编程---------------var array = [1,2,3,4,5]
var total = 0
for(var i = 0; i < array.length; i++) {
total *= numbers[i]
}
console.log(total) //=> 120
声明式编程-----------------------
var array = [1,2,3,4,5]
var total = array.reduce(function(sum, n) {
return sum * n
});
console.log(total) //=> 120
2. 组件化
组件:用来实现局部功能效果的html、css、js的集合
创建拥有各自状态的组件,然后将它们组合成复杂的UI
如下图所示,创建一个函数式组件,渲染到页面就好了,组件可以复用
3. 高效(Diffing算法)
当组件的状态发生改变时,需要对页面进行重绘,如果重绘整个页面效率会很低,react采用Diffing算法检查节点,只对发生改变的节点进行重绘,效率就会提高很多。
参考:
React 中的 Diffing算法(https://www.jianshu.com/p/d52190d1f384 )
了解 Diffing 算法( https://blog.csdn.net/gtLBTNq9mr3/article/details/104743999)
react特性-声明式编程(https://www.cnblogs.com/Shyno/p/11083517.html)