绑定数据

基础组件的属性往往不能静态写死,需要动态地根据数据来设置。因此模板里支持写一种简单的数据绑定表达式,等数据到达的时候,通过表达式里的定义访问数据里真实值设置给组件的属性。表达式的语法参考后文。 在创建组件的过程中,当解析属性碰到表达式的时候,就会将该属性的key、表达式值、所属的基础组件等关系存储起来,等真实的数据到达之后再将真实的数据绑定到基础组件的属性上。这里我们接收的数据是 JSON 格式的数据。 通过表达式解析、访问得到的属性值,会缓存起来,当原始数据引用不变的时候,每次访问都会获取到缓存值。

  1. 针对一个组件,获取到它包含的基础组件列表。
  2. 开始循环,检查每个基础组件是否需要绑定数据。如果没有,结束,否则开始绑定流程。
  3. 获取该基础组件里需要绑定数据的属性列表,这个列表在创建组件的过程中会随之创建保存。
  4. 如果没有需要绑定的属性列表,则回到第2步,否则开始第5步。
  5. 开始一个小循环,处理每一个属性。
  6. 检查原始数据里是否有清理缓存的标记。是的话,开始第7步,没有的话,开始第8步。
  7. 清理掉之前可能已经通过表达式获取过的数据值缓存。
  8. 从缓存里获取之前可能通过表达式解析获取过真实内容。
  9. 检查是否拿到缓存值,是的话,开始第12步,否则开始第10步。
  10. 没有缓存值,根据表达式的语法定义,和访问数据的逻辑,从原始数据里获取真实内容。
  11. 缓存获取到的值,以便二次使用。
  12. 将真实值,根据属性类型,设置给基础组件实例对应的属性。
  13. 回到第4步开始下一个属性处理。

最新的: