From: 三咲智子 Kevin Deng Date: Fri, 24 Nov 2023 11:57:20 +0000 (+0800) Subject: fix: remove get children when no dynamic node X-Git-Tag: v3.6.0-alpha.1~16^2~822 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74031bac34d61d5210b4962d4f1deddd3bfa6e5c;p=thirdparty%2Fvuejs%2Fcore.git fix: remove get children when no dynamic node --- diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap new file mode 100644 index 0000000000..b83f0dea60 --- /dev/null +++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap @@ -0,0 +1,23 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`comile > bindings 1`] = ` +"import { watchEffect } from 'vue' +import { template, setText } from 'vue/vapor' +const t0 = template(\`
\`) +export function render() { +const root = t0() +watchEffect(() => { +setText(n0, undefined, count.value) +}) +return root +}" +`; + +exports[`comile > static template 1`] = ` +"import { template } from 'vue/vapor' +const t0 = template(\`

hello

\`) +export function render() { +const root = t0() +return root +}" +`; diff --git a/packages/compiler-vapor/__tests__/__snapshots__/basic.test.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/fixtures.test.ts.snap similarity index 97% rename from packages/compiler-vapor/__tests__/__snapshots__/basic.test.ts.snap rename to packages/compiler-vapor/__tests__/__snapshots__/fixtures.test.ts.snap index 1a578cd93e..4a4d7c6ced 100644 --- a/packages/compiler-vapor/__tests__/__snapshots__/basic.test.ts.snap +++ b/packages/compiler-vapor/__tests__/__snapshots__/fixtures.test.ts.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`basic 1`] = ` +exports[`fixtures 1`] = ` "import { defineComponent as _defineComponent } from 'vue' import { watchEffect } from 'vue' import { template, insert, setText, on, setHtml } from 'vue/vapor' diff --git a/packages/compiler-vapor/__tests__/compile.test.ts b/packages/compiler-vapor/__tests__/compile.test.ts new file mode 100644 index 0000000000..2e02f28de0 --- /dev/null +++ b/packages/compiler-vapor/__tests__/compile.test.ts @@ -0,0 +1,24 @@ +import { BindingTypes } from '@vue/compiler-dom' +import { compile } from '../src' + +describe('comile', () => { + it('static template', () => { + const { code } = compile( + `
+

hello

+ +
`, + {}, + ) + expect(code).matchSnapshot() + }) + + it('bindings', () => { + const { code } = compile(`
{{ count }}
`, { + bindingMetadata: { + count: BindingTypes.SETUP_REF, + }, + }) + expect(code).matchSnapshot() + }) +}) diff --git a/packages/compiler-vapor/__tests__/basic.test.ts b/packages/compiler-vapor/__tests__/fixtures.test.ts similarity index 83% rename from packages/compiler-vapor/__tests__/basic.test.ts rename to packages/compiler-vapor/__tests__/fixtures.test.ts index dc83c2e706..7ece9c981d 100644 --- a/packages/compiler-vapor/__tests__/basic.test.ts +++ b/packages/compiler-vapor/__tests__/fixtures.test.ts @@ -1,9 +1,8 @@ import * as CompilerVapor from '../src' -// import * as CompilerDOM from '@vue/compiler-dom' import { parse, compileScript } from '@vue/compiler-sfc' import source from './fixtures/counter.vue?raw' -test('basic', async () => { +test('fixtures', async () => { const { descriptor } = parse(source, { compiler: CompilerVapor }) const script = compileScript(descriptor, { id: 'counter.vue', diff --git a/packages/compiler-vapor/src/generate.ts b/packages/compiler-vapor/src/generate.ts index bef9705bde..e2ed01b73e 100644 --- a/packages/compiler-vapor/src/generate.ts +++ b/packages/compiler-vapor/src/generate.ts @@ -29,7 +29,7 @@ export function generate( // TODO multiple-template code += `const root = t0()\n` - if (ir.children[0]) { + if (ir.children[0] && Object.keys(ir.children[0].children).length) { code += `const {${genChildren(ir.children[0].children)}} = children(root)\n` vaporHelpers.add('children') }