feat(sfc): remove <template inherit-attrs> support

This commit is contained in:
Evan You 2021-06-22 21:06:51 -04:00
parent 65f8c823aa
commit 6f6f0cf5dc
2 changed files with 10 additions and 32 deletions

View File

@ -91,28 +91,6 @@ const myEmit = defineEmits(['foo', 'bar'])
emits: ['foo', 'bar'],`) emits: ['foo', 'bar'],`)
}) })
test('<template inherit-attrs="false">', () => {
const { content } = compile(`
<script>
export default {}
</script>
<template inherit-attrs="false">
{{ a }}
</template>
`)
assertCode(content)
const { content: content2 } = compile(`
<script setup>
const a = 1
</script>
<template inherit-attrs="false">
{{ a }}
</template>
`)
assertCode(content2)
})
describe('<script> and <script setup> co-usage', () => { describe('<script> and <script setup> co-usage', () => {
test('script first', () => { test('script first', () => {
const { content } = compile(` const { content } = compile(`

View File

@ -96,10 +96,17 @@ export function compileScript(
) )
} }
// TODO remove on 3.2
if (sfc.template && sfc.template.attrs['inherit-attrs'] === 'false') {
warnOnce(
`experimetnal support for <template inherit-attrs="false"> support has ` +
`been removed. Use a <script> block with \`export default\` to ` +
`declare options.`
)
}
const scopeId = options.id ? options.id.replace(/^data-v-/, '') : '' const scopeId = options.id ? options.id.replace(/^data-v-/, '') : ''
const cssVars = sfc.cssVars const cssVars = sfc.cssVars
const hasInheritAttrsFlag =
sfc.template && sfc.template.attrs['inherit-attrs'] === 'false'
const scriptLang = script && script.lang const scriptLang = script && script.lang
const scriptSetupLang = scriptSetup && scriptSetup.lang const scriptSetupLang = scriptSetup && scriptSetup.lang
const isTS = const isTS =
@ -125,9 +132,8 @@ export function compileScript(
sourceType: 'module' sourceType: 'module'
}).program.body }).program.body
const bindings = analyzeScriptBindings(scriptAst) const bindings = analyzeScriptBindings(scriptAst)
const needRewrite = cssVars.length || hasInheritAttrsFlag
let content = script.content let content = script.content
if (needRewrite) { if (cssVars.length) {
content = rewriteDefault(content, `__default__`, plugins) content = rewriteDefault(content, `__default__`, plugins)
if (cssVars.length) { if (cssVars.length) {
content += genNormalScriptCssVarsCode( content += genNormalScriptCssVarsCode(
@ -137,9 +143,6 @@ export function compileScript(
!!options.isProd !!options.isProd
) )
} }
if (hasInheritAttrsFlag) {
content += `__default__.inheritAttrs = false`
}
content += `\nexport default __default__` content += `\nexport default __default__`
} }
return { return {
@ -950,9 +953,6 @@ export function compileScript(
// 11. finalize default export // 11. finalize default export
// expose: [] makes <script setup> components "closed" by default. // expose: [] makes <script setup> components "closed" by default.
let runtimeOptions = `\n expose: [],` let runtimeOptions = `\n expose: [],`
if (hasInheritAttrsFlag) {
runtimeOptions += `\n inheritAttrs: false,`
}
if (hasInlinedSsrRenderFn) { if (hasInlinedSsrRenderFn) {
runtimeOptions += `\n __ssrInlineRender: true,` runtimeOptions += `\n __ssrInlineRender: true,`
} }