版面 是一種特殊的 Astro component (EN),其在建立可重複使用的頁面模板時是相當有用的。
版面 component 通常會用來為一個 .astro
或 .md
頁面提供一個 頁面殼層 (<html>
、 <head>
和 <body>
標籤)以及一個用來指定嵌入到頁面內容的 <slot />
。
版面通常會為網頁提供一般 <head>
元素及一般 UI 元素,像是頁首、導覽列及頁尾。
版面 component 一般來說會放在一個 src/layouts
目錄在你的專案中。
版面例子
📚 了解更多關於 slots (EN) 的資訊。
Markdown 版面
網頁版面對 Markdown 檔案 (EN)特別有用。Markdown 檔案可以利用 frontmatter 最上面一個特殊的 layout
屬性來定義作為網頁版面的 .astro
component。
當一個 Markdown 檔引入了一個版面,它會傳入一個 frontmatter
屬性到包含所有 frontmatter 屬性及最終網頁HTML輸出的 .astro
component 內。
📚 在我們的 Markdown 指南 (EN)中了解更多關於 Astro 對 Markdown 的支援。
巢狀版面
版面 component 不需要包含所有網頁該有的 HTML 內容。你可以將你的版面分成更小的 component 然後重複使用這些 component 並建立出更有彈性、更強大的版面到你的專案中。
舉例來說,一個為部落格文章設計的一般版面會呈現出一個標題、日期及作者。一個 BlogPostLayout.astro
版面 component 會加入這些 UI 到網頁上,以形成一個更大、全面的版面來處理網頁剩下的部分。
Learn