我是vue的新手,我的项目使用Vue2、Nuxt和Vuetify。
我想要制作一个基本的.vue组件,以及从这个基派生出来的几个组件。
例如,这是我的基础dailog MyDialog.vue
<template>
<v-dialog v-model="isShowDialog" persistent>
<v-card>
<v-card-title> My Base Dialog </v-card-title>
<!-- inherited UI logic goes here -->
<v-card-actions>
<v-btn @click="closeDialog"> Close </v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {
data() {
return {
isShowDialog: true,
}
},
methods: {
closeDialog() {
this.isShowDialog = false
},
}
}
</script>对于派生组件,我想做一些像ImageDialog.vue、LoginFormDialog.vue、ComplexDialog.vue这样的东西,除了基本的MyDialog.vue之外,每个组件都有自己的子UI和逻辑。
例如,我能否实现这样的目标:
<MyDialog>
<div>
<span>This is an image</span>
<img src="...">
</div>
</MyDialog>我该从哪开始?或者任何我能参考的文件?
发布于 2022-11-09 04:50:55
对于基本组件,您可以在另一个组件中使用每个组件的简单嵌套。
如果您需要更多的灵活性+可重用性,可以使用插槽:https://vuejs.org/guide/components/slots.html
基本命名槽非常强大,但作用域槽甚至更好。同时,要小心,因为这是一种更先进的模式。
这里有一个在Vue社区很有名的人,如果你想在这个问题上找一个更大的课程:https://michaelnthiessen.com/#courses
发布于 2022-11-09 04:50:38
是的,您可以将组件导入另一个组件。请参阅以下参考资料:https://flaviocopes.com/vue-import-component/
https://stackoverflow.com/questions/74369897
复制相似问题