3 import { warn } from 'core/util/debug'
4 import { handleError } from 'core/util/error'
5 import { RECYCLE_LIST_MARKER } from 'weex/util/index'
6 import { createComponentInstanceForVnode } from 'core/vdom/create-component'
7 import { resolveVirtualComponent } from './virtual-component'
9 export function isRecyclableComponent (vnode: VNodeWithData): boolean {
10 return vnode.data.attrs
11 ? (RECYCLE_LIST_MARKER in vnode.data.attrs)
15 export function renderRecyclableComponentTemplate (vnode: MountedComponentVNode): VNode {
17 delete vnode.data.attrs[RECYCLE_LIST_MARKER]
18 resolveVirtualComponent(vnode)
19 const vm = createComponentInstanceForVnode(vnode)
20 const render = (vm.$options: any)['@render']
23 return render.call(vm)
25 handleError(err, vm, `@render`)
29 `@render function not defined on component used in <recycle-list>. ` +
30 `Make sure to declare \`recyclable="true"\` on the component's template.`,