felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

声明式(Declarative)编程与命令式(Imperative)编程 #109

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

主要的编程范式有:

React 采用声明式编程范式

一、命令式编程

命令式编程描述代码如何工作,告诉计算机一步步地执行、先做什么后做什么。 比如,做晚饭,你指挥你的保姆:

......

这就式命令式编程,告诉保姆如何去做事。 举个例子:

// 命令式关注如何做(how)

var num = [1,2,3,4,5];
var square = [];

for(var i = 0; i < num.length; i++) {
  var newNum = num[i] * num[i];
  square.push(newNum);
}
console.log(square) //=> [1,4,9,16,25]

遍历整个数组,取出每个元素,乘以它自己,然后把新的数值放入新数组,每次都要操作这个平方运算,直到计算完所有元素。

二、声明式编程

声明式编程声明想要达到什么目的,但是不指定具体做的步骤。 做晚饭,怎么做,做什么饭菜,那是保姆的事,做好了我尽管吃就是了。

// 声明式关注做什么(what)

var num = [1,2,3,4,5]

var square = num.map(function(n) {
  return n * n
})
console.log(square) //=> [1,4,9,16,25]

map 函数所作的事情是将直接遍历整个数组的过程归纳抽离出来,让我们专注于描述我们想要的是什么(what)。

相对比而言,声明式编程

Reference

React 核心思想之声明式渲染