一般来说声明式编程是和命令式编程是一起来说的,理解这个问题最简单的方式是:命令式编程描述代码怎么工作,而声明式编程想要实现什么目的。
举个现实的栗子来说一下吧,如果你去了酒吧想喝一杯酒,对服务员做什么指示呢??
命令式:1.从架子上拿一个酒杯
2.将酒杯放到酒瓶前
3.打开瓶盖,倒酒
4.把酒杯递给我
声明式:“请给我一杯酒”
按照声明式的方法点酒的前提是服务员是知道如何提供啤酒的,这就是声明式编程工作的原理。
那具体的例子呢,Vue.js 就是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统:
<div id="app"> {{ message }} </div> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } })
Vue 在背后做了大量工作。现在数据和 DOM 已经被建立了关联,这时我们不再和 HTML 直接交互了。一个 Vue 应用会将其挂载到一个 DOM 元素上 (对于这个例子是 #app
) 然后对其进行完全控制。那个 HTML 是我们的入口,但其余都会发生在新创建的 Vue 实例内部。