十三陵

历史背景

十三陵是明朝皇帝的墓葬建筑群。自永乐七年五月(1409年)起用,直到安葬崇祯帝后结束,历时230多年,共葬有13位皇帝,23位皇后、2位太子、30余名妃嫔、1位太监,是全球保存最完整的皇陵墓葬群之一。

明朝共有16位皇帝,但北京的明十三陵只有13位皇帝,未入陵者因由各异。明朝开国皇帝朱元璋早年建都于南京,死后葬于南京紫金山的“孝陵”;继位的长孙惠帝朱允炆,在其叔父燕王朱棣(即后来的成祖)发起“靖难之役”攻破南京之后下落不明,加上成祖不承认其帝位,因此没有帝陵;第七帝代宗朱祁钰,在其兄英宗于土木堡之变被瓦剌所俘之后登上帝位。后来英宗复辟,朱祁钰速死,英宗不承认其帝位,捣毁其在天寿山修建的寿陵。还有一说,寿陵被改建为在位仅29天的光宗陵墓,改名为庆陵。宪宗以亲王身份将他葬于北京西郊金山。金山是安葬妃嫔、早夭的亲王公主(皇子皇女)的皇家陵区。而景泰陵所在地,今为玉泉山。

十三陵的主陵是朱棣于1409年至1413年最早兴建的长陵,他当时经“车驾临视”,钦定山名为“天寿山”,1424年他于北征鞑靼途中驾崩,后安葬于此,但长陵工程直至1427年始全部竣工。期后近20年的兴建,形成长达7公里多的完整建筑群。

13座陵墓中,永乐帝的长陵、嘉靖帝的永陵和万历帝的定陵,均是生前所建,规模亦最大,其余陵墓则是死后才动工,大约会用半年修建。崇祯帝因为是亡国之君,并没有正式建陵,现时的陵墓是以其妃田氏的墓穴改建。

目前,长陵、定陵、昭陵、康陵和神道可供游客参观,其余陵均未开放。

Read More

BuildContext

BuildContext

BuildContext就是Widget对应的Element。

WidgetsFlutterBinding,其在创建的时候绑定了

如果Widget有更新,需要重新布局,Framework会将需要布局的RenderObject加入PipelineOwner的_nodesNeedingLayout中,然后当下一个VSync信号来临时,Framework会遍历_nodesNeedingLayout,对其中的每一个RenderObject重新进行布局,遍历_nodesNeedingLayout的函数。

前端模块化概念

在NodeJS之前,由于没有过于复杂的开发场景,前端是不存在模块化的,后端才有模块化。NodeJS诞生之后,它使用CommonJS的模块化规范。从此,js模块化开始快速发展。

CommonJS

Node.js是commonJS规范的主要实践者,它有四个重要的环境变量为模块化的实现提供支持:module、exports、require、global。实际使用时,用module.exports定义当前模块对外输出的接口(不推荐直接用exports),用require加载模块。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 定义模块math.js
var basicNum = 0;
function add(a, b) {
return a + b;
}
module.exports = { //在这里写上需要向外暴露的函数、变量
add: add,
basicNum: basicNum
}

// 引用自定义的模块时,参数包含路径,可省略.js
var math = require('./math');
math.add(2, 5);

// 引用核心模块时,不需要带路径
var http = require('http');
http.createService(...).listen(3000);

AMD

AMD规范采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

Read More