@@ -4,6 +4,7 @@ import VNode from './vnode'
4
4
import { resolveConstructorOptions } from 'core/instance/init'
5
5
import { queueActivatedComponent } from 'core/observer/scheduler'
6
6
import { createFunctionalComponent } from './create-functional-component'
7
+ import { renderRecyclableComponentTemplate } from 'weex/runtime/recycle-list/render-component-template'
7
8
8
9
import {
9
10
warn ,
@@ -144,21 +145,6 @@ export function createComponent (
144
145
145
146
data = data || { }
146
147
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
-
162
148
// resolve constructor options in case global mixins are applied after
163
149
// component constructor creation
164
150
resolveConstructorOptions ( Ctor )
@@ -206,6 +192,14 @@ export function createComponent (
206
192
{ Ctor, propsData, listeners, tag, children } ,
207
193
asyncFactory
208
194
)
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
+
209
203
return vnode
210
204
}
211
205
0 commit comments