From 0130918996afac75907937a679615c198425346c Mon Sep 17 00:00:00 2001 From: yangchangtao Date: Wed, 21 Aug 2024 16:19:14 +0800 Subject: [PATCH 1/4] fix(compiler-sfc): setup binding has a higher priority than data --- packages/compiler-sfc/src/script/analyzeScriptBindings.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/compiler-sfc/src/script/analyzeScriptBindings.ts b/packages/compiler-sfc/src/script/analyzeScriptBindings.ts index ae544f640..cbc97dbd2 100644 --- a/packages/compiler-sfc/src/script/analyzeScriptBindings.ts +++ b/packages/compiler-sfc/src/script/analyzeScriptBindings.ts @@ -87,10 +87,11 @@ function analyzeBindingsFromOptions(node: ObjectExpression): BindingMetadata { bodyItem.argument.type === 'ObjectExpression' ) { for (const key of getObjectExpressionKeys(bodyItem.argument)) { - bindings[key] = - property.key.name === 'setup' + bindings[key] = !bindings[key] + ? property.key.name === 'setup' ? BindingTypes.SETUP_MAYBE_REF : BindingTypes.DATA + : BindingTypes.SETUP_MAYBE_REF } } } From 70b5671fba522e134a27078db77b2ad39b284800 Mon Sep 17 00:00:00 2001 From: yangchangtao Date: Wed, 21 Aug 2024 16:24:31 +0800 Subject: [PATCH 2/4] chore: test case --- .../__tests__/compileScript.spec.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts index efc5af522..4d4048ec0 100644 --- a/packages/compiler-sfc/__tests__/compileScript.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript.spec.ts @@ -1121,6 +1121,36 @@ describe('SFC analyze + `) + expect(bindings).toStrictEqual({ + foo: BindingTypes.SETUP_MAYBE_REF, + msg: BindingTypes.DATA, + hello: BindingTypes.SETUP_MAYBE_REF, + }) + }) + it('recognizes methods', () => { const { bindings } = compile(`