数据源

根节点数据源

根节点指定的数据源可以驱动整个页面的动态渲染,它根据页面参数$id自动从指定数据库(product,user,order、xdb)中检索到的数据作为作为最顶层的执行表达式的上下文环境$ctx,非常有利于SEO。
特殊地,me会把当前登录用户的数据作为数据源而无需$id,xdb还可以把$id作为type配合页面参数$key一起获取数据。

组件数据源

每个组件都可以指定一个数据源,作为子组件及其本身的表达式的上下文环境$ctx
动态数据源需要表达式指定数据来源,每次重渲染时都从数据源中拿到的最新数据来渲染页面;静态数据源则直接将数据粘贴进去。

1. 数组数据源

将根据数组的每项数据来循环渲染组件。上下文执行环境中用$x来表示数据项,$index表示其下标,$array表示原来的数组,父组件提供的数据源则放入$parent

2. 对象数据源

提供新数据源并把父组件提供的数据源则放入$parent

3. 树数据源

如果对象数据源是个树形结构的对象时,即数据源里有个key为zchildren存放分支或叶子数据的数组,平台会根据zchildren的每项数据来循环渲染。除了$x$index外,数组$indexes表示当前数据项在zchildren的下标路径,数组长度表明它在树中位置的深度;开关函数$toggle用来触发数据项的展开或收起,布尔变量$isExpanded表示当前数据项是否展开(渲染)。

执行环境 $ctx

$ctx是运行时真实执行环境中表达式可以调用的数据,通常直接使用里面的数据而很少使用$ctx关键字,比如不用($ctx.name)而直接使用(name)就可以了,更多的是在开发阶段使用log($ctx)去打印当前组件可以使用哪些数据。属性面板的展示的“上下文数据”是可用于事件表达式的上下文数据的一个静态侧影,用于形象地快速理解可能存在的数据,而非完全真实的运行时$ctx,比如组件数据源将用每个数据项依次循环作用于指定子组件,属性面板无法动态展示作用在它上面的每个数据项,只能展示叠加后的侧影,即后面数据项依次合并并覆盖前面数据项得到的结果,所以在展示中前面的数据会被后面的数据遮挡。

我们用小括号来表示要动态渲染的数据,括弧必须是放在最外层,即它前后不可以有其它任何字符。

渲染条件

可以使用渲染条件表达式来动态决定是否渲染此组件(及其后代)。条件为假时此组件在页面中不会渲染对应的元素节点,可加快渲染速度。而display: none样式虽然可使元素看不见,但它依旧被渲染出来了。

Make in ZC APP Platform