W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
以下是使用XHP時要了解和遵循的一般使用指南。除了其基本用法,可用的方法和擴展XHP與您自己的對象,這些是其他提示,以充分利用XHP。
XHP對象子元素和屬性的約束在不同時間完成:
此驗證默認啟用。您可以在使用XHP之前運行以下代碼來關(guān)閉它:
:XHP :: $ ENABLE_VALIDATION = FALSE
如果您有parent對象,并且要向UI樹(例如,<ul>to <li>)進一步向某個對象提供信息,則可以為這些較低對象設(shè)置上下文,較低對象可以檢索它們。你使用setContext()和getContext()
<?hh
class :ui-myparent extends :x:element {
attribute string text @required;
children (:ui-mychild);
protected function render(): XHPRoot {
return (
<dl>
<dt>Text</dt>
<dd>{$this->:text}</dd>
<dt>Child</dt>
<dd>{$this->getChildren()}</dd>
</dl>
);
}
}
class :ui-mychild extends :x:element {
attribute string text @required;
protected function render(): XHPRoot {
if ($this->getContext('hint') === 'Yes') {
return
<x:frag>{$this->:text . '...and more'}</x:frag>;
}
return
<x:frag>{$this->:text}</x:frag>;
}
}
function guidelines_examples_context_run(string $s): void {
$xhp = (
<ui-myparent text={$s}>
<ui-mychild text="Go" />
</ui-myparent>
);
$xhp->setContext('hint', $s);
echo $xhp;
}
guidelines_examples_context_run('No');
echo "\n\n";
guidelines_examples_context_run('Yes');
Output
<DL> <DT>文本</ DT> <DD>沒有</ DD> <DT>子</ DT> <DD>轉(zhuǎn)到</ DD> </ DL>
<dl> <dt>文本</ dt> <dd>是</ dd> <dt> Child </ dt> <dd> Go ... and more </ dd> </ dl>
上下文只在渲染時傳遞給樹; 這允許您構(gòu)建一個樹,而不需要通過數(shù)據(jù)。一般來說,你只應(yīng)該調(diào)用孩子getContext()的render()方法。
常見用途包括:
XHP對象只能通過其屬性,上下文,樹中的位置和呈現(xiàn)它們進行交互。在Facebook,我們還沒有遇到任何公共方法比這些接口更好的解決方案的情況。
如果您需要一個XHP對象像另一個,但稍作修改,使用組合。類別和屬性克隆可用于提供通用接口。
屬性聲明看起來像Hack屬性聲明:
public string $prop;
attribute string attr;
一個關(guān)鍵的區(qū)別是沒有$在屬性名稱前面。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: