@@ -17,7 +17,6 @@ import { currentInstance } from './component'
17
17
import { componentKey } from './component'
18
18
import type { DynamicSlot } from './componentSlots'
19
19
import { renderEffect } from './renderEffect'
20
- import { withMemo } from './memo'
21
20
22
21
interface ForBlock extends Fragment {
23
22
scope : EffectScope
@@ -27,7 +26,6 @@ interface ForBlock extends Fragment {
27
26
index : ShallowRef < number | undefined > ,
28
27
]
29
28
key : any
30
- memo : any [ ] | undefined
31
29
}
32
30
33
31
type Source = any [ ] | Record < any , any > | number | Set < any > | Map < any , any >
@@ -37,7 +35,6 @@ export const createFor = (
37
35
src : ( ) => Source ,
38
36
renderItem : ( block : ForBlock [ 'state' ] ) => Block ,
39
37
getKey ?: ( item : any , key : any , index ?: number ) => any ,
40
- getMemo ?: ( item : any , key : any , index ?: number ) => any [ ] ,
41
38
container ?: ParentNode ,
42
39
hydrationNode ?: Node ,
43
40
once ?: boolean ,
@@ -61,7 +58,6 @@ export const createFor = (
61
58
warn ( 'createFor() can only be used inside setup()' )
62
59
}
63
60
64
- const update = getMemo ? updateWithMemo : updateWithoutMemo
65
61
once ? renderList ( ) : renderEffect ( renderList )
66
62
67
63
return ref
@@ -276,23 +272,9 @@ export const createFor = (
276
272
scope,
277
273
state,
278
274
key : getKey && getKey ( item , key , index ) ,
279
- memo : getMemo && getMemo ( item , key , index ) ,
280
275
[ fragmentKey ] : true ,
281
276
} )
282
- block . nodes = scope . run ( ( ) => {
283
- if ( getMemo ) {
284
- return withMemo (
285
- ( ) =>
286
- getMemo (
287
- block . state [ 0 ] . value ,
288
- block . state [ 1 ] . value ,
289
- block . state [ 2 ] . value ,
290
- ) ,
291
- ( ) => renderItem ( state ) ,
292
- )
293
- }
294
- return renderItem ( state )
295
- } ) !
277
+ block . nodes = scope . run ( ( ) => renderItem ( state ) ) !
296
278
297
279
if ( parent ) insert ( block . nodes , parent , anchor )
298
280
@@ -314,28 +296,7 @@ export const createFor = (
314
296
}
315
297
}
316
298
317
- function updateWithMemo (
318
- block : ForBlock ,
319
- newItem : any ,
320
- newKey = block . state [ 1 ] . value ,
321
- newIndex = block . state [ 2 ] . value ,
322
- ) {
323
- const [ , key , index ] = block . state
324
- let needsUpdate = newKey !== key . value || newIndex !== index . value
325
- if ( ! needsUpdate ) {
326
- const oldMemo = block . memo !
327
- const newMemo = ( block . memo = getMemo ! ( newItem , newKey , newIndex ) )
328
- for ( let i = 0 ; i < newMemo . length ; i ++ ) {
329
- if ( ( needsUpdate = newMemo [ i ] !== oldMemo [ i ] ) ) {
330
- break
331
- }
332
- }
333
- }
334
-
335
- if ( needsUpdate ) updateState ( block , newItem , newKey , newIndex )
336
- }
337
-
338
- function updateWithoutMemo (
299
+ function update (
339
300
block : ForBlock ,
340
301
newItem : any ,
341
302
newKey = block . state [ 1 ] . value ,
0 commit comments