parent
9e3d7731c7
commit
d4c04e9799
@ -58,7 +58,7 @@ exports[`SFC compile <script setup> <script> and <script setup> co-usage spaces
|
|||||||
"import { x } from './x'
|
"import { x } from './x'
|
||||||
|
|
||||||
export const n = 1
|
export const n = 1
|
||||||
const __default__ = {
|
const __default__ = {
|
||||||
some:'option'
|
some:'option'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ exports[`SFC compile <script setup> <script> and <script setup> co-usage spaces
|
|||||||
"import { x } from './x'
|
"import { x } from './x'
|
||||||
|
|
||||||
export const n = 1
|
export const n = 1
|
||||||
const __default__ = {
|
const __default__ = {
|
||||||
some:'option'
|
some:'option'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -392,6 +392,7 @@ export default {
|
|||||||
expose()
|
expose()
|
||||||
|
|
||||||
const props = __props
|
const props = __props
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return { props, propsModel }
|
return { props, propsModel }
|
||||||
@ -400,6 +401,23 @@ return { props, propsModel }
|
|||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`SFC compile <script setup> defineProps w/ leading code 1`] = `
|
||||||
|
"import { x } from './x'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {},
|
||||||
|
setup(__props, { expose }) {
|
||||||
|
expose()
|
||||||
|
|
||||||
|
const props = __props
|
||||||
|
|
||||||
|
|
||||||
|
return { props, x }
|
||||||
|
}
|
||||||
|
|
||||||
|
}"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`SFC compile <script setup> defineProps() 1`] = `
|
exports[`SFC compile <script setup> defineProps() 1`] = `
|
||||||
"export default {
|
"export default {
|
||||||
props: {
|
props: {
|
||||||
@ -410,6 +428,7 @@ exports[`SFC compile <script setup> defineProps() 1`] = `
|
|||||||
|
|
||||||
const props = __props
|
const props = __props
|
||||||
|
|
||||||
|
|
||||||
const bar = 1
|
const bar = 1
|
||||||
|
|
||||||
return { props, bar }
|
return { props, bar }
|
||||||
@ -426,6 +445,7 @@ exports[`SFC compile <script setup> defineProps/defineEmits in multi-variable de
|
|||||||
expose()
|
expose()
|
||||||
|
|
||||||
const props = __props
|
const props = __props
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return { props, emit }
|
return { props, emit }
|
||||||
@ -442,6 +462,7 @@ exports[`SFC compile <script setup> defineProps/defineEmits in multi-variable de
|
|||||||
expose()
|
expose()
|
||||||
|
|
||||||
const props = __props
|
const props = __props
|
||||||
|
|
||||||
const a = 1;
|
const a = 1;
|
||||||
|
|
||||||
return { props, a, emit }
|
return { props, a, emit }
|
||||||
@ -814,7 +835,7 @@ return (_ctx, _cache) => {
|
|||||||
}),
|
}),
|
||||||
_createElementVNode(\\"div\\", {
|
_createElementVNode(\\"div\\", {
|
||||||
onClick: _cache[5] || (_cache[5] = () => {
|
onClick: _cache[5] || (_cache[5] = () => {
|
||||||
let a = '' + _unref(lett)
|
let a = '' + _unref(lett)
|
||||||
_isRef(v) ? v.value = a : v = a
|
_isRef(v) ? v.value = a : v = a
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
@ -828,7 +849,7 @@ return (_ctx, _cache) => {
|
|||||||
let z2 = z
|
let z2 = z
|
||||||
})
|
})
|
||||||
let lz = _ctx.z
|
let lz = _ctx.z
|
||||||
})
|
})
|
||||||
_isRef(v) ? v.value = _ctx.a : v = _ctx.a
|
_isRef(v) ? v.value = _ctx.a : v = _ctx.a
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -1286,6 +1307,7 @@ const props = __props
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return { props, emit }
|
return { props, emit }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1360,6 +1382,7 @@ const props = __props as {
|
|||||||
bar?: number
|
bar?: number
|
||||||
baz: boolean
|
baz: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return { props, defaults }
|
return { props, defaults }
|
||||||
@ -1382,6 +1405,7 @@ export default /*#__PURE__*/_defineComponent({
|
|||||||
expose()
|
expose()
|
||||||
|
|
||||||
const props = __props as { foo: string, bar?: number, baz: boolean, qux(): number }
|
const props = __props as { foo: string, bar?: number, baz: boolean, qux(): number }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return { props }
|
return { props }
|
||||||
|
@ -119,6 +119,7 @@ export default {
|
|||||||
setup(__props) {
|
setup(__props) {
|
||||||
|
|
||||||
const rest = _createPropsRestProxy(__props, [\\"foo\\",\\"bar\\"])
|
const rest = _createPropsRestProxy(__props, [\\"foo\\",\\"bar\\"])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return () => {}
|
return () => {}
|
||||||
|
@ -96,6 +96,18 @@ const bar = 1
|
|||||||
props: propsModel,`)
|
props: propsModel,`)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// #4764
|
||||||
|
test('defineProps w/ leading code', () => {
|
||||||
|
const { content } = compile(`
|
||||||
|
<script setup>import { x } from './x'
|
||||||
|
const props = defineProps({})
|
||||||
|
</script>
|
||||||
|
`)
|
||||||
|
// props declaration should be inside setup, not moved along with the import
|
||||||
|
expect(content).not.toMatch(`const props = __props\nimport`)
|
||||||
|
assertCode(content)
|
||||||
|
})
|
||||||
|
|
||||||
test('defineEmits()', () => {
|
test('defineEmits()', () => {
|
||||||
const { content, bindings } = compile(`
|
const { content, bindings } = compile(`
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -164,8 +176,8 @@ defineExpose({ foo: 123 })
|
|||||||
const { content } = compile(`
|
const { content } = compile(`
|
||||||
<script>
|
<script>
|
||||||
export const n = 1
|
export const n = 1
|
||||||
export default
|
export default
|
||||||
{
|
{
|
||||||
some:'option'
|
some:'option'
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -181,7 +193,7 @@ defineExpose({ foo: 123 })
|
|||||||
const { content } = compile(`
|
const { content } = compile(`
|
||||||
<script>
|
<script>
|
||||||
export const n = 1
|
export const n = 1
|
||||||
export default{
|
export default{
|
||||||
some:'option'
|
some:'option'
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -549,7 +561,7 @@ defineExpose({ foo: 123 })
|
|||||||
<div @click="v += 1"/>
|
<div @click="v += 1"/>
|
||||||
<div @click="v -= 1"/>
|
<div @click="v -= 1"/>
|
||||||
<div @click="() => {
|
<div @click="() => {
|
||||||
let a = '' + lett
|
let a = '' + lett
|
||||||
v = a
|
v = a
|
||||||
}"/>
|
}"/>
|
||||||
<div @click="() => {
|
<div @click="() => {
|
||||||
@ -561,7 +573,7 @@ defineExpose({ foo: 123 })
|
|||||||
let z2 = z
|
let z2 = z
|
||||||
})
|
})
|
||||||
let lz = z
|
let lz = z
|
||||||
})
|
})
|
||||||
v = a
|
v = a
|
||||||
}"/>
|
}"/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1205,25 +1205,25 @@ export function compileScript(
|
|||||||
// we use a default __props so that template expressions referencing props
|
// we use a default __props so that template expressions referencing props
|
||||||
// can use it directly
|
// can use it directly
|
||||||
if (propsIdentifier) {
|
if (propsIdentifier) {
|
||||||
s.prependRight(
|
s.prependLeft(
|
||||||
startOffset,
|
startOffset,
|
||||||
`\nconst ${propsIdentifier} = __props${
|
`\nconst ${propsIdentifier} = __props${
|
||||||
propsTypeDecl ? ` as ${genSetupPropsType(propsTypeDecl)}` : ``
|
propsTypeDecl ? ` as ${genSetupPropsType(propsTypeDecl)}` : ``
|
||||||
}`
|
}\n`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (propsDestructureRestId) {
|
if (propsDestructureRestId) {
|
||||||
s.prependRight(
|
s.prependLeft(
|
||||||
startOffset,
|
startOffset,
|
||||||
`\nconst ${propsDestructureRestId} = ${helper(
|
`\nconst ${propsDestructureRestId} = ${helper(
|
||||||
`createPropsRestProxy`
|
`createPropsRestProxy`
|
||||||
)}(__props, ${JSON.stringify(Object.keys(propsDestructuredBindings))})`
|
)}(__props, ${JSON.stringify(Object.keys(propsDestructuredBindings))})\n`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// inject temp variables for async context preservation
|
// inject temp variables for async context preservation
|
||||||
if (hasAwait) {
|
if (hasAwait) {
|
||||||
const any = isTS ? `: any` : ``
|
const any = isTS ? `: any` : ``
|
||||||
s.prependRight(startOffset, `\nlet __temp${any}, __restore${any}\n`)
|
s.prependLeft(startOffset, `\nlet __temp${any}, __restore${any}\n`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const destructureElements =
|
const destructureElements =
|
||||||
|
Loading…
Reference in New Issue
Block a user