渲染
渲染用于将部件转化为 HTML 并输出到页面上。在 zin 页面中通过部件和指令定义页面内容,通过 render
方法将内容渲染到页面上。
渲染方法 render
定义
render
方法定义如下:
php
function render(string $wgName = '', array $options = null): void;
参数
参数定义如下:
$wgName
:指定内容所渲染的目标部件名称,如果省略此参数则会自动根据请求类型使用合适的渲染部件;$options
渲染选项。
默认渲染规则
当 $wgName
为空时,将根据请求类型自动选择渲染部件,规则如下:
- 如果请求类型为 Ajax 对话框请求,则渲染到 对话框
modalDialog
部件上; - 如果请求类型为 Ajax 请求但不是 zin 页面请求(例如请求区块 HTML 片段),则渲染到 片段
fragment
部件上; - 如果请求类型为 zin 页面请求或浏览器普通请求(包括无感刷新操作或在浏览器单独打开),则渲染到 页面
page
部件上。
render
用法
简单使用
php
h1('Hello zin!');
btn('Click me!');
/* 将标题和按钮渲染到页面部件 page 内。 */
render();
省略 render
方法
当 render 方法不需要传入特殊参数时可以省略手动调用,ZentaoPHP 框架会自动调用默认的 render
方法。上例的可以简写为:
php
h1('Hello zin!');
btn('Click me!');
指定目标部件
php
h1('Hello zin!');
btn('Click me!');
/* 将标题和按钮渲染到对话框部件 modalDialog 内。 */
render('modalDialog');
根据请求类型渲染
通过 isAjaxRequest
方法判断请求类型,并根据请求类型渲染到不同的部件内:
php
$isInModal = isAjaxRequest('modal');
/* 根据请求类型添加不同的内容到页面。 */
if($isInModal)
{
set::title('对话框标题');
}
h1('Hello zin!');
btn('Click me!');
/* 根据类型使用不同部件进行渲染输出。 */
render($isInModal ? 'modalDialog' : 'page');
当请求类型为 Ajax 对话框请求时,标题和按钮将渲染到 modalDialog
部件上,反之则渲染到 page
部件上。