040 模版結構優化之繼承詳解

2022-03-26 06:28:28 字數 1578 閱讀 6883

模版結構優化之繼承詳解:

在前端頁面開發中。有些**是需要重複使用的。這種情況可以使用 include 標籤來實現。也可以使用另外乙個比較強大的方式來實現,那就是模版繼承。模版繼承類似於 python 中的類,在父類中可以先定義好一些變數和方法,然後在子類中實現。模版繼承也可以在父模版中先定義好一些子模版需要用到的**,然後子模版直接繼承就可以了。並且因為子模版肯定有自己的不同**,因此可以在父模版中定義乙個block介面,然後子模版再去實現。以下是父模版的**:

doctype html

>

<

html

lang

="en"

>

<

head

>

<

link

rel="stylesheet"

href

=""/>

<

title

>我的站點

title

>

head

>

<

body

>

<

div

id="sidebar"

>

<

ul>

<

li><

a href

="/"

>首頁

a>

li>

<

li><

a href

="/blog/"

>部落格

a>

li>

u>

div>

<

div

id="content"

>

div>

body

>

html

>

這個模版,我們取名叫做 base.html ,定義好乙個簡單的 html 骨架,然後定義好兩個 block 介面,讓子模版來根據具體需求來實現。子模板然後通過 extends 標籤來實現,示例**如下:

部落格列表

<

h2>}

h2>

<

p>}

p>

需要注意的是:extends標籤必須放在模版的第一行。子模板中的**必須放在block中,否則將不會被渲染。如果在某個 block 中需要使用父模版的內容,那麼可以使用 } 來繼承。比如上例, ,如果想要使用父模版的 title ,那麼可以在子模版的 title block 中使用 } 來實現。

在定義 block 的時候,除了在 block 開始的地方定義這個 block 的名字,還可以在 block 結束的時候定義名字。比如 。這在大型模版中顯得尤其有用,能讓你快速的看到 block 包含在**。

Python Mako模版之頁面繼承

最近在重構自己的乙個專案,於是將django的模版轉換成mako的第三方模版,但是發現關於mako的文件挺多,但是全都是英文的,看起來挺費力,但是這兒有一篇博文翻譯的不錯 關於頁面繼承,寫過比較大的專案大家應該都心有體會,為了保證乙個專案的風格統一,一般我們都會寫乙個基本的模版,如網頁頭部,側邊欄,...

java之繼承詳解

a稱之為基類或父類 public classa b稱之為衍生類或子類 class bextends a a基類或父類 public class a public void method2 public void method3 b繼承a class b extends a class test pu...

C 繼承,虛繼承 記憶體結構 詳解

目錄 class test1 private int num1 class test2 public test1 private int num2 void main test2記憶體結構 檢視記憶體發現父類在子類的上面 在原有的 基礎上增加了test3類 test3類繼承了 test2和test1...