@@ -4,6 +4,7 @@ import VNode from './vnode'
44import { resolveConstructorOptions } from 'core/instance/init'
55import { queueActivatedComponent } from 'core/observer/scheduler'
66import { createFunctionalComponent } from './create-functional-component'
7+ import { renderRecyclableComponentTemplate } from 'weex/runtime/recycle-list/render-component-template'
78
89import {
910 warn ,
@@ -144,21 +145,6 @@ export function createComponent (
144145
145146 data = data || { }
146147
147- // recycle-list optimized render function for extracting cell-slot
148- // template. This is essentially inline expanding instead of creating
149- // an actual instance.
150- // https://github.com/Hanks10100/weex-native-directive/tree/master/component
151- if ( __WEEX__ && data . attrs && data . attrs [ '@isInRecycleList' ] ) {
152- const altRender = Ctor . options [ '@render' ]
153- if ( altRender ) {
154- return altRender . call (
155- context ,
156- context . $createElement ,
157- data . attrs
158- )
159- }
160- }
161-
162148 // resolve constructor options in case global mixins are applied after
163149 // component constructor creation
164150 resolveConstructorOptions ( Ctor )
@@ -206,6 +192,14 @@ export function createComponent (
206192 { Ctor, propsData, listeners, tag, children } ,
207193 asyncFactory
208194 )
195+
196+ // Weex specific: invoke recycle-list optimized @render function for
197+ // extracting cell-slot template.
198+ // https://github.com/Hanks10100/weex-native-directive/tree/master/component
199+ if ( __WEEX__ && data . attrs && ( '@inRecycleList' in data . attrs ) ) {
200+ return renderRecyclableComponentTemplate ( vnode )
201+ }
202+
209203 return vnode
210204}
211205
0 commit comments