#### recycle-list app端nvue专用组件。 `` 是一个新的列表容器,具有回收和复用的能力,可以大幅优化内存占用和渲染性能。它的性能比list组件更高,但写法受限制。它除了会释放不可见区域的渲染资源,在非渲染的数据结构上也有更多优化。 此组件自HBuilderX 2.2.6+起支持。 #### 子组件 `` 只能使用 `` 作为其直接子节点,使用其他节点无效。 #### cell-slot `` 代表的是列表每一项的模板,它只用来描述模板的结构,并不对应实际的节点。`` 的个数只表示模板的种类数,真实列表项的个数是由数据决定的。 **注意** - `` 包含自定义组件时,在 Android 上有性能问题 - recycle-list 是区域滚动,不会触发页面滚动,无法触发pages.json配置的下拉刷新、页面触底onReachBottomDistance、titleNView的transparent透明渐变。 属性|说明 :--|:--| case|声明了当前模板的类型,只有和数据中的类型与当前类型匹配时才会渲染,语义和编程语言里的 case 一致。所有模板中最多只会匹配到一项,按照模板的顺序从上到下匹配,一旦匹配成功就不在继续匹配下一个。 default|表示当前模板为默认模板类型,不需要指定值。如果数据项没有匹配到任何 case 类型,则渲染带有 default 模板。如果存在多个 default,则只会使用第一个默认模板。 key|可选属性,用于指定列表数据中可以作为唯一标识的键值,可以优化渲染性能。 - warning 属性的省略 - 如果没写 `switch`,无论有没有写 `case` 或 `default`,都只使用第一个模板 - 在写了 `switch` 的情况下,`case` 和 `default` 必须写一个,否则该模板将会被忽略 属性 - for 在 `` 添加 for 属性即可描述如何循环展开列表的数据,语法和 Vue 的 v-for 指令类似,但是它循环的是自己内部的子节点,并不是当前节点。写法: - `alias in expression` - `(alias, index) in expression` - switch 在 `` 添加 switch 属性可以用来指定数据中用于区分子模板类型的字段名,语义和编程语言里的 switch 一致,配合 `` 中的 case 和 default 属性一起使用。 如果省略了 switch 属性,则只会将第一个 `` 视为模板,多余的模板将会被忽略。 ```html - A {{i}} - - B {{i}} - ``` 注意:Android 平台目前仅支持放到 template 根节点,后续修复此问题 可复用的组件 在 `` 中使用的子组件也将被视为模板,在开发组件时给 `