欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 模板繼承

張越彬1年前6瀏覽0評論

模板繼承是一種常用的前端設計模式,它可以通過利用不同層次模板之間的關系,減少重復代碼的編寫,并提高頁面布局的可維護性。在JavaScript中,模板繼承的實現方式主要有兩種,一種是基于jQuery的模板引擎,另一種是基于Node.js的模板引擎。本文將重點介紹Node.js中的模板繼承實現方式。

在Node.js中,常用的模板引擎有jade、ejs和handlebars等。其中,jade的語法比較簡潔,可以大大減少HTML代碼的編寫量。ejs則更加靈活,支持JavaScript語法。handlebars則是比較接近標準HTML的模板引擎。不同模板引擎之間的語法差異較大,本文將以jade模板引擎為例進行介紹。

//父模板:layout.jade
html
head
title= title
body
block content
// 子模板:index.jade
extends layout
block content
h1= title
p Welcome to #{title}

在上述代碼中,layout.jade是一個父模板,而index.jade是它的一個子模板。通過extends指令,子模板可以繼承父模板的布局結構。在父模板中用block指令定義了一個名為content的塊,在子模板中用block指令重載了名為content的塊,并在其中填充了一些內容。

在使用模板繼承時,還可以使用include指令將一個模板嵌入到另一個模板中作為局部塊。例如,我們可以將一個頭部模板和一個尾部模板作為全局模板,并在不同頁面中使用include指令添加特定的內容塊。

// 全局頭部模板:head.jade
head
title= title
meta(name='viewport', content='width=device-width, initial-scale=1')
link(rel='stylesheet', href= css)
// 全局尾部模板:footer.jade
footer
p Copyright ? #{year}
// 子模板:index.jade
extends layout
include head
block content
h1= title
p Welcome to #{title}
include footer

在上述代碼中,我們將head.jade和footer.jade作為全局模板,分別定義了頭部和尾部的內容。在子模板中,我們通過include指令將頭部和尾部模板嵌入,并在其中填充了名為content的塊。這樣,在不同頁面中我們只需要定義不同的content塊即可實現不同的頁面布局。

模板繼承不僅可以實現頁面布局的復用,還可以實現內容復用。例如,在一個網站中可能有多個頁面都需要展示一個熱門推薦的商品列表。如果我們每個頁面都單獨編寫這個列表,那么無疑會造成大量的冗余代碼。但是,通過模板繼承技術,我們可以將這個列表作為一個獨立的模板,然后在需要展示的頁面中使用include指令引用它。

// 熱門商品模板:hot-products.jade
aside
h2= title
ul
each product in products
li
img(src= product.image)
p= product.name
// 子模板:index.jade
extends layout
include head
block content
h1= title
p Welcome to #{title}
include hot-products
title='Hot Products'
products= hotProducts
include footer
// 子模板:sale.jade
extends layout
include head
block content
h1= title
p Check out our sale items!
include hot-products
title='Sale Items'
products= saleItems
include footer

在上述代碼中,我們將熱門商品模板定義為一個獨立的模板,包含了一個標題和一個商品列表。在子模板中,我們通過include指令指定了需要引用的熱門商品模板,并傳遞了不同的參數來實現不同的內容展示。

總的來說,模板繼承是一種非常實用的前端設計模式,可以幫助我們在頁面布局和內容展示方面實現代碼的復用,提高項目的可維護性。在實踐中,我們可以根據具體需求選擇合適的模板引擎,并結合include和block指令來實現模板繼承。