亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Swift Web 開發之 Vapor - 模版 Leaf(三)

2019-11-06 06:47:28
字體:
來源:轉載
供稿:網友

模版引擎,對現在的 Web 開發極為重要,幾乎所有主流 Web 框架都會支持一種或多種模版引擎,模版引擎可以分離用戶界面和業務邏輯,工作原理主要是一種翻譯,后端對特定的標記、語法、變量等渲染后再輸送給瀏覽器,如今模版引擎已經非常強大,在相關領域可以幫助開發者節約很多時間精力,比如緩存、設計分層、插件化。不同的模版引擎千變萬化,各種語言也是層出不窮,比如 php 模版引擎中的老大哥 Smarty,Python 的 Jinja2,也是 Flask 中內置的模版引擎,如今前端也有新生模版引擎,依賴前端的性能提升,像后端一樣處理模版語言渲染數據。

Leaf 作為 Vapor 官方提供的組件之一原生集成在 Vapor 中,Leaf 模版文件以 .leaf 結尾,模版語法夾雜在 HTML 之間,我們可以直接使用而不需要引入其他外部依賴。

渲染

我們可以在路由中進行模版的渲染,同時附帶給模版傳參數,參數以 Dict 的形式放在第二個位置,然后在 .leaf 模版文件中就能拿到對應的數據。

drop.get { req in return try drop.view.make("index.leaf", ['greeting': "Hello world!"])}

標記 (#)

Leaf 使用 # 作為模版語法的標記,筆者也很苦惱為啥 Vapor 的作者要用井號做語法標記,在 Github 也有人提出 # 會與 HTML/CSS 有沖突(issue #11)。

我們可以用 #() 來輸出 HTML, 這里需要注意的是這樣輸出 Leaf 會對其中的 HTML 進行轉義,舉個例子,如下代碼輸出到瀏覽器,HTML 源代碼真是內容其實是:hello ,并沒有被 A 標簽包起來。

#(<a>hello</a>)

如果想輸出原始 HTML 怎么辦呢?我們可以用 raw() {} 來輸出不會被轉移的 HTML,也就是說到瀏覽器會被解析成對應的 HTML 代碼,如下會在瀏覽器輸出:<a>hello</a>。

#raw() { <a>hello</a> }

需要注意的是不要讓用戶輸入內容用 #raw(){ } 進行原始輸出,比如評論,以免造成惡意代碼執行的漏洞!

變量

#(variable)

比較

#equal(leaf, leaf)

判斷

下面這段代碼邏輯就是 if:elif:else

#if(entering) { Hello, there!} ##if(leaving) { Goodbye!} ##else() { I've been here the whole time.}

循環

#loop(users, "user") { Hello, #(user.name)! </br >}

基本循環用 #loop ,第一個參數傳入數組,第二個參數寫出循環內部的實例變量名,假設我的 users 內容是 [“Objective-C”、”Swift”、”Vapor”],輸出內容在瀏覽器看起來就會是這個樣子:

Hello, Objective-C!

Hello, Swift!

Hello, Vapor!

模塊化

我們構建一些多頁面 Web 程序,常常會有每個頁面或者一種頁面部分相似的內容,比如網站的頭部、腳部,頭部一般用來放導航欄,腳部放一些版權聲明、三方鏈接等等,那么在整個網站任何頁面中這兩部分的內容基本都是一致的,那么我們可以把這兩部分的內容抽出一個單獨的 .leaf 文件存放,并在需要的地方引入進來就可以了。

Leaf 提供了四個方法來引入/包含其他模版:

Import: #import("template")Export: #export("template") { Leaf/HTML }Extend: #extend("template")Embed: #embed("template")

這四個標簽都不需要補全 .leaf 后綴,Leaf 會自動查找對應文件。

#import() 用來聲明一個插入點在當前模版。

#extend() 用來繼承一個模版,使用模版的內容,然后就只能#export() 填充之前聲明的插入點。

#embed("body") 才是用來引入一個模版的內容到當前位置。

舉個栗子


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲日产国产网站| 久久这里有精品视频| 国产精品99久久久久久白浆小说| 国产日本欧美一区| 揄拍成人国产精品视频| 午夜精品一区二区三区在线视| 久久香蕉精品香蕉| 亚洲欧美中文字幕| 国产香蕉一区二区三区在线视频| 亚洲男人天堂古典| 久久777国产线看观看精品| 成人黄色激情网| 亚洲香蕉成视频在线观看| 久久久久久成人精品| 国产精品专区h在线观看| 国内精品免费午夜毛片| 欧美激情区在线播放| 亚洲网在线观看| 亚洲人成网7777777国产| 91chinesevideo永久地址| 国产精品成人观看视频国产奇米| 另类图片亚洲另类| 亚洲a成v人在线观看| 亚洲男人天堂2023| 欧美综合在线观看| 国产精品99久久久久久久久久久久| 日韩av网站在线| 亚洲第一二三四五区| 欧美激情va永久在线播放| 欧美成人亚洲成人日韩成人| 91免费观看网站| 狠狠色狠狠色综合日日小说| 欧美裸体视频网站| 亚洲美女精品久久| 成人激情在线播放| 在线视频日韩精品| 69精品小视频| www国产亚洲精品久久网站| 色综合天天狠天天透天天伊人| 中文字幕日韩av| 久久成人这里只有精品| 91精品久久久久久久久青青| www.日本久久久久com.| 国产精品91视频| 亚洲最大成人免费视频| 久久久91精品国产一区不卡| 国产精品欧美一区二区| 久久在精品线影院精品国产| 亚洲国产精品大全| 日韩在线欧美在线国产在线| 日韩欧美在线国产| 自拍视频国产精品| 色视频www在线播放国产成人| 亚洲福利视频免费观看| 国产视频久久网| 国产日产久久高清欧美一区| 91免费电影网站| 欧美电影免费看| 国产精品国产三级国产aⅴ浪潮| 久久久免费在线观看| 国产91在线高潮白浆在线观看| 欧美国产精品人人做人人爱| 国产999在线观看| 国产精品久久久久高潮| 日韩国产精品亚洲а∨天堂免| 欧美激情按摩在线| 精品自在线视频| 精品亚洲永久免费精品| 国产成人一区三区| 精品香蕉在线观看视频一| 岛国视频午夜一区免费在线观看| 91成人天堂久久成人| 国产精品自拍偷拍视频| 欧美精品激情blacked18| 欧美肥臀大乳一区二区免费视频| 96精品视频在线| 亚洲国产精品字幕| 亚洲少妇激情视频| 日本精品性网站在线观看| 欧美激情视频一区二区三区不卡| 中文字幕亚洲综合| 欧美日韩精品在线播放| 91精品免费看| 欧美成人性色生活仑片| 色偷偷噜噜噜亚洲男人的天堂| 国产美女直播视频一区| 欧美一区视频在线| 国产精品最新在线观看| 在线a欧美视频| 久色乳综合思思在线视频| 欧美中文字幕在线观看| 美日韩在线视频| 性欧美视频videos6一9| 日韩av影视在线| 欧美激情视频播放| 久久精品国产一区| 亚洲图片在区色| 亚洲天堂日韩电影| 亚洲人成人99网站| 成人精品久久av网站| 91po在线观看91精品国产性色| 亚洲国产一区自拍| 亚洲色图五月天| 日韩精品久久久久久久玫瑰园| 日韩在线免费高清视频| 久久综合色88| 日韩免费观看网站| 亚洲人免费视频| 久久久91精品国产一区不卡| 国产亚洲日本欧美韩国| 久久久91精品国产一区不卡| 亚洲第一中文字幕在线观看| 全亚洲最色的网站在线观看| 国产日产久久高清欧美一区| 亚洲天堂av在线免费| 欧美日韩国产精品一区二区不卡中文| 亚洲欧美在线一区二区| 欧美色视频日本版| 国产一区玩具在线观看| 福利视频第一区| 久久欧美在线电影| 国产精品偷伦一区二区| 中文字幕久久久av一区| 国产成人午夜视频网址| 久久影视三级福利片| 国产精品96久久久久久| 欧美精品福利视频| 国产精品久久中文| 91色琪琪电影亚洲精品久久| 日韩精品极品在线观看| 欧美日韩成人免费| 久久久久久高潮国产精品视| 成人免费视频网| 国产精品久久久久久久久久久久| 日韩国产精品一区| 国内精品美女av在线播放| 久久九九亚洲综合| 精品一区二区三区电影| 色播久久人人爽人人爽人人片视av| 久久免费国产精品1| 成人av资源在线播放| 国产精品扒开腿做爽爽爽视频| 亚洲成人久久久| 欧美精品videosex牲欧美| 国产日韩欧美一二三区| 久久精品2019中文字幕| 欧美性色xo影院| 亚洲国产女人aaa毛片在线| 亚洲国产91精品在线观看| 欧美日韩国产中文字幕| 欧美小视频在线观看| 亚洲国产欧美日韩精品| 精品福利樱桃av导航| 亚洲女人天堂色在线7777| 欧美精品免费在线观看| www.欧美精品| 97人人模人人爽人人喊中文字| 久久久久久久久久久亚洲| 国产精品久久久久久久久久新婚| 亚洲精品久久久一区二区三区| 欧美野外猛男的大粗鳮| 日韩激情av在线免费观看| 日韩av大片在线| 国产色婷婷国产综合在线理论片a|