【发布时间】:2021-02-26 10:40:26
【问题描述】:
我正在使用实验性的script setup 来创建一个学习环境。我有一个打开单个组件的自制导航栏。
我在使用<component :is="" /> 方法时遇到问题。此方法在component basics -> dynamic-components下的文档中进行了描述
在 Vue 3 Composition API 中,它按预期工作:
<template>
<NavigationBar
@switchTab="changeTab"
:activeTab="tab"
/>
<component :is="tab" />
</template>
<script>
import { ref } from 'vue'
import NavigationBar from './components/NavigationBar.vue'
import TemplateSyntax from './components/TemplateSyntax.vue'
import DataPropsAndMethods from './components/DataPropsAndMethods.vue'
export default {
components: {
NavigationBar,
TemplateSyntax,
DataPropsAndMethods
},
setup () {
const tab = ref('DataPropsAndMethods')
function changeTab (newTab) {
tab.value = newTab
}
return {
changeTab,
tab
}
}
}
</script>
我使用script setup 的方法失败了:
<template>
<NavigationBar
@switchTab="changeTab"
:activeTab="tab"
/>
<component :is="tab" />
</template>
<script setup>
import NavigationBar from './components/NavigationBar.vue'
import TemplateSyntax from './components/TemplateSyntax.vue'
import DataPropsAndMethods from './components/DataPropsAndMethods.vue'
import { ref } from 'vue'
const tab = ref('DataPropsAndMethods')
function changeTab (newTab) {
tab.value = newTab
}
</script>
你知道如何用脚本设置方法解决这个问题吗?
【问题讨论】:
标签: javascript vue.js vuejs3 vue-composition-api vue-script-setup