保誠-保戶業務員媒合平台
Tomas
2022-05-19 957a1f10a06fdbb76f1a0ba94fe44126c613fee3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* @flow */
 
import { warn } from 'core/util/debug'
import { handleError } from 'core/util/error'
import { RECYCLE_LIST_MARKER } from 'weex/util/index'
import { createComponentInstanceForVnode } from 'core/vdom/create-component'
import { resolveVirtualComponent } from './virtual-component'
 
export function isRecyclableComponent (vnode: VNodeWithData): boolean {
  return vnode.data.attrs
    ? (RECYCLE_LIST_MARKER in vnode.data.attrs)
    : false
}
 
export function renderRecyclableComponentTemplate (vnode: MountedComponentVNode): VNode {
  // $flow-disable-line
  delete vnode.data.attrs[RECYCLE_LIST_MARKER]
  resolveVirtualComponent(vnode)
  const vm = createComponentInstanceForVnode(vnode)
  const render = (vm.$options: any)['@render']
  if (render) {
    try {
      return render.call(vm)
    } catch (err) {
      handleError(err, vm, `@render`)
    }
  } else {
    warn(
      `@render function not defined on component used in <recycle-list>. ` +
      `Make sure to declare \`recyclable="true"\` on the component's template.`,
      vm
    )
  }
}