介紹
部分包含可重用的Twig標(biāo)記塊急凰,可在整個(gè)網(wǎng)站的任何地方使用少欺。 對(duì)于在不同頁(yè)面或布局上重復(fù)的頁(yè)面元素,分頁(yè)非常有用欣福。 一個(gè)很好的部分示例是在不同頁(yè)面布局中使用的頁(yè)面頁(yè)腳。 另外焦履,使用AJAX更新頁(yè)面內(nèi)容需要部分內(nèi)容拓劝。
部分模板文件位于主題目錄的/ partials子目錄中僻焚。 部分文件應(yīng)具有htm擴(kuò)展名月趟。 最簡(jiǎn)單的部分示例:
<p>This is a partial</p>
“配置”部分對(duì)于局部變量是可選的,并且可以包含可選的description參數(shù)惋砂,該參數(shù)顯示在后端用戶界面中屑宠。 下一個(gè)示例顯示了部分說(shuō)明:
description = "Demo partial"
==
<p>This is a partial</p>
部分配置部分還可以包含組件定義厢洞。 在另一篇文章中解釋了組件。
渲染 partials
{%partials“ partial-name”%} Twig標(biāo)記呈現(xiàn)部分典奉。 標(biāo)記具有一個(gè)必需的參數(shù)-不帶擴(kuò)展名的部分文件名躺翻。 請(qǐng)記住,如果您從子目錄中引用局部文件卫玖,則應(yīng)指定子目錄名稱获枝。 {%partials%}標(biāo)簽可以在頁(yè)面,布局或其他部分中使用骇笔。 引用部分頁(yè)面的頁(yè)面示例:
<div class="sidebar">
{% partial "sidebar-contacts" %}
</div>
將變量傳遞給partial
您會(huì)發(fā)現(xiàn)您經(jīng)常需要將變量傳遞給外部代碼的一部分省店。 這使分詞更加有用嚣崭。 例如,您可以使用一個(gè)呈現(xiàn)博客文章列表的Partial懦傍。 如果可以將帖子集合傳遞給部分雹舀,則可以在博客存檔頁(yè)面,博客類別頁(yè)面等上使用同一部分粗俱。 您可以通過(guò)在{%partial %}標(biāo)記中的部分名稱之后指定變量來(lái)將變量傳遞給部分:
<div class="sidebar">
{% partial "blog-posts" posts=posts %}
</div>
您還可以分配新的變量以供partial 使用:
<div class="sidebar">
{% partial "sidebar-contacts" city="Vancouver" country="Canada" %}
</div>
在局部變量中说榆,可以像訪問(wèn)其他任何markup 標(biāo)記變量一樣訪問(wèn)變量:
<p>Country: {{ country }}, city: {{ city }}.</p>
動(dòng)態(tài)partial
partial (如page)可以使用任何Twig功能。 有關(guān)詳細(xì)信息寸认,請(qǐng)參閱動(dòng)態(tài)page文檔签财。
partial 執(zhí)行生命周期
可以在局部的PHP部分中定義特殊功能:onStart和onEnd。 onStart函數(shù)在呈現(xiàn)部分之前和執(zhí)行部分組件之前執(zhí)行偏塞。 onEnd函數(shù)在呈現(xiàn)部分之前和部分組件執(zhí)行之后執(zhí)行唱蒸。 在onStart和onEnd函數(shù)中,您可以將變量注入Twig環(huán)境灸叼。 使用數(shù)組符號(hào)將變量傳遞到頁(yè)面:
==
function onStart()
{
$this['hello'] = "Hello world!";
}
==
<h3>{{ hello }}</h3>
《標(biāo)記指南》中介紹了October提供的模板語(yǔ)言神汹。 動(dòng)態(tài)布局文章中介紹了處理程序執(zhí)行的總體順序。
生命周期限制
由于它們實(shí)例化的時(shí)間較晚古今,因此在頁(yè)面渲染期間屁魏,某些限制適用于部分的生命周期。 它們不遵循布局執(zhí)行生命周期中所述的標(biāo)準(zhǔn)執(zhí)行過(guò)程捉腥。 應(yīng)注意以下限制:
AJAX事件未注冊(cè)氓拼,將無(wú)法正常運(yùn)行。
生命周期函數(shù)不能返回任何值抵碟。
呈現(xiàn)部分時(shí)桃漾,將進(jìn)行常規(guī)的POST表單處理。
通常立磁,局部中的組件用法是為基本組件設(shè)計(jì)的呈队,這些基本組件無(wú)需進(jìn)行過(guò)多處理即可呈現(xiàn)簡(jiǎn)單的標(biāo)記,例如“Like ”或“Tweet ”按鈕唱歧。