Я довольно плохо знаком с Vue Eco-System, но я бы хотел достичь чего-то, как показано ниже:
**VisitListTemplateFile.vue**
<template>...</template>
<script>
import VisitListView from '../../views/VisitListView'
import '../../assets/vendor/datatables/app.datatables';
import Body from '../partials/Body';
export default new VisitListView("VisitListView", Body);
</script>
<style scoped>
@import "../../assets/vendor/datatables/datatables.min.css";
</style>
**VisitListViewFile.js**
import {BaseView} from '../../core/BaseView';
export default class VisitListView extends BaseView {
constructor(name, ...components) {
super(name, ...components);
}
mounted() {
console.log("TEST");
}
}
Это работает вроде как, но я понимаю, что функции обратного вызова, например, смонтированные , не вызываются, хотя есть обходной путь, чтобы заставить это работать. Мне было интересно, есть ли более чистый способ сделать это.
---- UPDATE ----
Я сделал это, и это работает, поэтому мой вопрос, это создает какие-либо проблемы?
BaseView.js
export class BaseView {
constructor(name, ...components) {
this.name = name;
this.components = {};
components.forEach(comp => {
this.components[comp.name] = comp;
});
return {
components: this.components,
mounted: this.mounted
}
}
mounted(){
super.mounted();
}
}