[TOC]
## **介绍**
Partials包含可重复使用的Twig标记块,可以在整个网站的任何地方使用。部件对于在不同页面或布局上重复的页面元素非常有用。一个很好的部件示例是页脚,用于不同的[页面布局](#3)。此外,[使用AJAX更新页面内容](#3)需要部件内容。
部件模板文件驻留在主题目录的**/ partials**子目录中。部分文件应具有**htm**扩展名。最简单的部件示例:
~~~
<p>This is a partial</p>
~~~
的[配置](#3)部分是可选的部件并且可以包含可选的**描述**,其被显示在后端用户接口的参数。下一个示例显示了部件描述:
~~~
description = "Demo partial"
==
<p>This is a partial</p>
~~~
部件配置部分还可以包含组件定义。[组件](#3)在另一篇文章中解释。
## **渲染部件**
该`{% partial "partial-name" %}`Twig标签生成的部分。标签有一个必需参数 - 没有扩展名的部分文件名。请记住,如果从[子目录中](#3)引用partial,则应指定子目录名称。该`{% partial %}`标签可以在里面的网页时,布局或另一局部使用。引用部分的页面示例:
~~~
<div class="sidebar">
{% partial "sidebar-contacts" %}
</div>
~~~
## **将变量传递给部件**
您会发现通常需要将变量传递给外部代码的部分变量。这使得局部更有用。例如,您可以使用部分呈现博客帖子列表。如果您可以将帖子集合传递给部分,则可以在博客存档页面,博客类别页面等上使用相同的部分。您可以通过在`{% partial %}`标记中的部分名称后指定变量来将变量传递给部件:
~~~
<div class="sidebar">
{% partial "blog-posts" posts=posts %}
</div>
~~~
您还可以分配新变量以在partial中使用:
~~~
<div class="sidebar">
{% partial "sidebar-contacts" city="Vancouver" country="Canada" %}
</div>
~~~
在部件内部,可以像任何其他标记变量一样访问变量:
~~~
<p>Country: {{ country }}, city: {{ city }}.</p>
~~~
## **动态部件**
部分(如页面)可以使用任何Twig功能。有关详细信息,请参阅[动态页面](#3)文档。
### **部件执行生命周期**
可以在partials的PHP部分中定义特殊函数:`onStart`和`onEnd`。该`onStart`函数在呈现部分之前和执行部分[组件](#3)之前执行。该`onEnd`函数在呈现部分之前和执行部分[组件](#3)之后执行。在onStart和onEnd函数中,您可以将变量注入Twig环境。使用`array notation`将变量传递给页面:
~~~
==
function onStart()
{
$this['hello'] = "Hello world!";
}
==
<h3>{{ hello }}</h3>
~~~
[标记指南中](#3)描述了October提供的模板语言。[动态布局](#3)文章中描述了处理程序执行的整体顺序。
### **生命周期限制**
由于它们是在后期实例化的,因此在呈现页面的过程中,某些限制适用于部分的生命周期。它们不遵循标准执行过程,如[布局执行生命周期中所述](#3)。应注意以下限制:
1. AJAX事件未注册,将无法正常运行。
2. 生命周期函数不能返回任何值。
3. 在呈现部分时将发生常规POST表单处理。
通常,partials中的组件使用是为基本组件设计的,这些组件在没有太多处理的情况下呈现简单标记,例如*Like*或*Tweet*按钮。
- 安装程序
- 安装
- 配置
- CMS
- 主题
- 页面
- 部件
- 布局
- 内容
- 组件
- 媒体
- 标记指南
- AJAX
- 介绍
- 事件处理
- 更新部件
- 数据属性API
- JavaScript API
- 额外特征
- 主题
- 开发主题
- 插件
- 注册
- 版本
- 使用Composer
- 构建组件
- 设置和配置
- 本地化
- 任务调度
- 扩展插件
- 后台
- 控制器和AJAX
- 视图和部件
- 小工具
- 表单
- 列表
- 关联
- 重新排序
- 导入导出
- 用户和权限
- 用户界面指南
- 数据库
- 基本用法
- 结构
- 查询构造器
- 模型
- 关联
- 附件
- 集合
- 访问器和修改器
- 序列化
- 特性
- 行为
- 服务
- 应用
- 行为
- 缓存
- 集合
- 错误&日志
- 事件
- 表单&HTML
- 文件系统/CDN
- 哈希&加密
- 助手函数
- 邮件
- 分页
- 分析器
- 队列
- 请求&输入
- 响应&视图
- 路由
- Session
- 验证
- 控制台
- 命令
- 脚手架
- 开发
- API文档
- 附录
- 单元测试
- 质量指南
- 开发指南