Appearance
什么是声明式渲染?
本节目标:理解“什么是声明式渲染?”的核心思路,并能把它用于实际开发或面试表达。
声明式渲染的理解?
1.DOM状态只是数据状态的一个映射
2.所有的逻辑尽可能在状态的层面去进行
3.当状态改变了,view会被框架自动更新到合理的状态命令式:一步一步告诉程序如何去做,能否达成结果取决于开发者的设计。 声明式:只告诉程序想要什么结果,如何达成由程序保证,开发者不用关心。
从代码看区别需求: 展示今天的日期,如果是周日就用粉色的字,否则用蓝色。命令式渲染通常意味着手动操作 DOM。这里用 jQuery 实现上述功能,代码如下: // HTML <div class="box"></div>
// JS
let today = new Date();
let color = today.getDay() === 0 ? 'pink' : 'lightBlue';
let box = $('.box');
box.text(today.toLocaleDateString());
box.css('color', color);声明式渲染实现的是,DOM 随状态(数据)更新而更新。用 Vue 实现上述功能,代码如下:
// HTML
<div id="root">
<div :style="boxStyle">{{today}}</div>
</div>// JS
new Vue({
el: '#root',
data: {
today: '',
boxStyle: {
color: ''
}
},
mounted() {
let now = new Date();
this.today = now.toLocaleDateString();
this.boxStyle.color = now.getDay() === 0 ? 'pink' : 'lightBlue';
}
});两相对比,声明式代码中没有查找、操作DOM 对象的语句,只更新数据。
