父组件 : <template> <div class="app"> <!-- 动态组件 component --> <!-- is中的组件需要来自两个地方: 1.全局注册的组件 2.局部注册的组件 --> <!-- <component :is="tabs[currentIndex]"></component> --> <component name="why" :age="18" @homeClick="homeClick" :is="currentTab"> </component> </div> </template> <script> import Home from './views/Home.vue' import About from './views/About.vue' import Category from './views/Category.vue' export default { components: { Home, About, Category }, data() { return { tabs: ["home", "about", "category"], // currentIndex: 0 currentTab: "home" } }, methods: { itemClick(tab) { this.currentTab = tab }, homeClick(payload) { console.log("homeClick:", payload) } } } </script> <style scoped> .active { color: red; } </style>
子组件 : <template> <div> <h2>Home组件: {{ name }} - {{ age }}</h2> <button @click="homeBtnClick">homeBtn</button> </div> </template> <script> export default { props: { name: { type: String, default: "" }, age: { type: Number, default: 0 } }, emits: ["homeClick"], methods: { homeBtnClick() { this.$emit("homeClick", "home") } } } </script> <style scoped> </style>
标签:Category,home,default,使用,组件,Home,homeClick,动态 From: https://www.cnblogs.com/qd-lbxx/p/16615073.html