Skip to content

Commit 7ee27ac

Browse files
committed
fix(compiler-core): handle v-memo in template v-for
1 parent ae4b078 commit 7ee27ac

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

packages/compiler-core/__tests__/transforms/__snapshots__/vMemo.spec.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ exports[`compiler: v-memo transform on template v-for 1`] = `
3636
export function render(_ctx, _cache) {
3737
return (_openBlock(), _createElementBlock(\\"div\\", null, [
3838
(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.list, ({ x, y }, __, ___, _cached) => {
39-
const _memo = ([x, y === z])
39+
const _memo = ([x, y === _ctx.z])
4040
if (_cached && _cached.key === x && _isMemoSame(_cached, _memo)) return _cached
4141
const _item = (_openBlock(), _createElementBlock(\\"span\\", { key: x }, \\"foobar\\"))
4242
_item.memo = _memo

packages/compiler-core/src/transforms/vFor.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ export const transformFor = createStructuralDirectiveTransform(
6060
forNode.source
6161
]) as ForRenderListExpression
6262
const memo = findDir(node, 'memo')
63+
64+
if (memo && isTemplateNode(node)) {
65+
memo.exp = processExpression(
66+
memo.exp! as SimpleExpressionNode,
67+
context
68+
)
69+
}
70+
6371
const keyProp = findProp(node, `key`)
6472
const keyExp =
6573
keyProp &&

0 commit comments

Comments
 (0)