# 部件
## **介绍**
Partials包含可重复使用的Twig标记块,可以在整个网站的任何地方使用。部件对于在不同页面或布局上重复的页面元素非常有用。一个很好的部件示例是页脚,用于不同的[页面布局](https://www.kancloud.cn/followme/octobercms/1073832#3)。此外,[使用AJAX更新页面内容](https://www.kancloud.cn/followme/octobercms/1073832#3)需要部件内容。
部件模板文件驻留在主题目录的\*\*/ partials**子目录中。部分文件应具有**htm\*\*扩展名。最简单的部件示例:
```
<p>This is a partial</p>
```
的[配置](https://www.kancloud.cn/followme/octobercms/1073832#3)部分是可选的部件并且可以包含可选的**描述**,其被显示在后端用户接口的参数。下一个示例显示了部件描述:
```
description = "Demo partial"
==
<p>This is a partial</p>
```
部件配置部分还可以包含组件定义。[组件](https://www.kancloud.cn/followme/octobercms/1073832#3)在另一篇文章中解释。
## **渲染部件**
该`{% partial "partial-name" %}`Twig标签生成的部分。标签有一个必需参数 - 没有扩展名的部分文件名。请记住,如果从[子目录中](https://www.kancloud.cn/followme/octobercms/1073832#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功能。有关详细信息,请参阅[动态页面](https://www.kancloud.cn/followme/octobercms/1073832#3)文档。
### **部件执行生命周期**
可以在partials的PHP部分中定义特殊函数:`onStart`和`onEnd`。该`onStart`函数在呈现部分之前和执行部分[组件](https://www.kancloud.cn/followme/octobercms/1073832#3)之前执行。该`onEnd`函数在呈现部分之前和执行部分[组件](https://www.kancloud.cn/followme/octobercms/1073832#3)之后执行。在onStart和onEnd函数中,您可以将变量注入Twig环境。使用`array notation`将变量传递给页面:
```
==
function onStart()
{
$this['hello'] = "Hello world!";
}
==
<h3>{{ hello }}</h3>
```
[标记指南中](https://www.kancloud.cn/followme/octobercms/1073832#3)描述了October提供的模板语言。[动态布局](https://www.kancloud.cn/followme/octobercms/1073832#3)文章中描述了处理程序执行的整体顺序。
### **生命周期限制**
由于它们是在后期实例化的,因此在呈现页面的过程中,某些限制适用于部分的生命周期。它们不遵循标准执行过程,如[布局执行生命周期中所述](https://www.kancloud.cn/followme/octobercms/1073832#3)。应注意以下限制:
1. AJAX事件未注册,将无法正常运行。
2. 生命周期函数不能返回任何值。
3. 在呈现部分时将发生常规POST表单处理。
通常,partials中的组件使用是为基本组件设计的,这些组件在没有太多处理的情况下呈现简单标记,例如*Like*或*Tweet*按钮。
- 基本说明
- 基本操作
- October cms 安装
- 后台控制器路径
- 图标
- 获取安装网上的插件/主题
- 插件构造器使用
- 定时任务
- October后台控制器
- vscode编辑器
- ajax操作
- 使用
- ajax更新组件
- ajax属性API
- JavaScript API
- ajax综合使用
- 主题
- 多语言主题
- 安装市场主题
- 主题程序处理
- 主题
- 页面
- 部件
- 布局
- 内容
- 组件
- 媒体
- 主题表单操作
- 表单使用
- 表单后端程序处理
- 插件
- 自定义插件
- 插件说明
- 插件导航条
- 插件数据库设置
- 插件的设置管理
- 插件的配置文件config
- 组件
- app服务
- app容器
- 扩展行为
- 缓存
- Collection类
- Lazy Collections
- Collection方法
- 助手函数
- 数组助手函数
- 路径助手函数
- 玄乐助手函数
- 其他助手函数
- 错误与记录
- 事件处理
- HTML页面
- 文件与目录操作
- 散列和加密
- 邮件
- 邮件内容
- 邮件发送
- 分页
- 模板解析器
- 动态解析器语法
- 队列消息
- 请求与输入
- 响应
- 视图
- 路由器
- 配置
- 验证操作
- 处理错误消息
- 错误消息与视图
- 可用的验证规则
- 有条件的验证规则
- 验证数组
- 错误消息
- 自定义验证规则
- 模型操作
- 定义模型与其属性
- 检索模型
- 插入与更新
- 删除模型
- 查询范围
- 事件操作
- 关联操作
- 定义关系
- 关系类型
- 多肽关系
- 关系查询
- 渴望加载
- 插入模型
- 数据库操作
- 基本用法
- 数据表结构
- 查询连贯操作
- 结果检索
- select子句
- 插入更新
- where子句
- 排序,分组,限制和偏移
- 文件附件
- Collection操作
- 属性操作
- 系列化json
- 数据库属性
- 数据库行为
- 控制器
- 后台控制器定义
- 后台页面
- 后台组件
- 后台表单
- 表单组件
- 表单视图
- 表单行为
- 后台列表
- 列表行为
- 列表过滤器
- 可用列类型
- 关系行为
- 关系行为类型
- 扩展关系行为
- 列表排序操作
- 导入导出操作
- 用于与权限
- corlate模板修改
- 修改顶部导航
- laravel问题
- 控制器不存在
- 控制器
- 路由组
- laravel笔记
- laravel 安装
- 伪静态配置
- 依赖注入 & 控制器
- 中间件
- 路由文件
- 视图