A block is a placeholder. Its content comes from another jade file.
An include is a placeholder, too. Its content also comes from another jade file.
So far, both are equal.
But:
include embeds a complete file. The including file defines which file is being included. Hence include is fine for outsourcing parts such as a footer or a header, which are always loaded the same way.
A block just defines a placeholder in the top file. Which content is included is not defined by this file, but by a sub-file. So, control over what is included is being reversed.
With an include, A says: Import B.
With a block, B says: Here is content for a placeholder, and please use file A and its placeholders to fill in my content.
include means top-down, blocks mean bottom-up.
Additionally, one file may include several blocks.
When to use what:
- It's common to define the overall layout of a site in a master page with blocks.
- The single pages contain the content for each individual file, reference the master file and fill its blocks.
- Subviews in either the master or the page are being set up using includes.
Does that help?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…