Использование стиля на основе классов JavaScript в качестве компонента Vue - PullRequest
0 голосов
/ 20 марта 2019

Я довольно плохо знаком с 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();
    }
}
...