博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
声明式和命令式
阅读量:5311 次
发布时间:2019-06-14

本文共 1428 字,大约阅读时间需要 4 分钟。

  1 . 声明和命令式 (Declarative vs Imperative

  声明和命令式是两种编程范式。react是声明式的,jquery那样直接操作dom是命令式

Alright here’s a metaphor.

Declarative Programming is like asking your friend to draw a landscape. You don’t care how they draw it, that’s up to them.

Imperative Programming is like your friend listening to Bob Ross tell them how to paint a landscape. While good ole Bob Ross isn’t exactly commanding, he is giving them step by step directions to get the desired result.

      声明式就像你告诉你朋友画一幅画,你不用去管他怎么画的细节

  命令式就像按照你的命令,你朋友一步步把画画出来

     换言之

  • 命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。
  • 声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

 2 . 来点代码

     点击一个按钮,改变颜色

  命令式:

const container = document.getElementById(‘container’);const btn = document.createElement(‘button’);btn.className = ‘btn red’;btn.onclick = function(event) { if (this.classList.contains(‘red’)) {   this.classList.remove(‘red’);   this.classList.add(‘blue’); } else {   this.classList.remove(‘blue’);   this.classList.add(‘red’); }};container.appendChild(btn);

   声明式(react):

class Button extends React.Component{  this.state = { color: 'red' }  handleChange = () => {    const color = this.state.color === 'red' ? 'blue' : 'red';    this.setState({ color });  }  render() {    return (
); }}

 

   注意到什么不一样了么?

   react没有去修改dom,只是声明了页面应该是什么样子(根据不同的state).

   放到整个应用层面也是一样的道理,我们更加需要关心的是整个应用和页面的框架结构。

 

 

  参考链接:

转载于:https://www.cnblogs.com/johnzhu/p/9016277.html

你可能感兴趣的文章
C++备忘
查看>>
实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)
查看>>
ES6工作中常用知识点
查看>>
Java Web高级编程(二)
查看>>
Linux 操作系统下 VI 编辑器常用命令详细介绍
查看>>
NOI2005聪明与可可
查看>>
RNN
查看>>
关于数据库(SqlServer)中替换xml文件里面的value值
查看>>
cmd查询端口情况
查看>>
队列的顺序存储结构
查看>>
字符串:各种奇葩的内置方法 - 零基础入门学习Python014
查看>>
for循环 字符串的处理
查看>>
裁剪算法——多边形裁剪/文字裁剪
查看>>
tomcat中配置https
查看>>
.NET运用AJAX 总结及其实例
查看>>
Request 对象 错误 'ASP 0104 : 80004005' 不允许操作
查看>>
2010年5月编程语言的排行指数-Objective-C闯进前十!
查看>>
(记录合并)union和union all 的区别
查看>>
Struts2 convention plugin (转载)
查看>>
Extjs4:给Grid的Header加上提示(转载)
查看>>