vueJS грубые операции через топор ios шаблон - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу создать похожие компоненты. Они будут выполнять грубые операции с RESTful API-сервером. Я создал первый компонент, подобный этому

        name: 'tags',
        components: {Status},
        data() {
            return {
                tag: {},
                tags: [],
                modalState: {
                    title: 'Create'
                }
            }
        },
        mounted() {
            this.getAll('tags');
            axios
                .get(rootUrl + '/statuses')
                .then(response => (this.statuses = response.data));
        },
        methods: {
            findTag(index) {
                this.tag = this.tags[index];
            },
            createTag() {
                axios
                    .post(rootUrl + '/tags', this.tag)
                    .then(response => {
                            if (response.status === 201) {
                                axios
                                    .get(rootUrl + '/tags')
                                    .then(response => (this.tags = response.data));
                            } else {
                                console.log('error');
                            }
                        }
                    );
            },
            updateTag(id) {
                axios
                    .put(rootUrl + '/tags/' + id, this.tag)
                    .then(response => {
                            if (response.status === 201) {
                                axios
                                    .get(rootUrl + '/tags')
                                    .then(response => (this.tags = response.data));
                            } else {
                                console.log('error');
                            }
                        }
                    );
            },
            deleteTag(id) {
                axios
                    .post(rootUrl + '/tags/' + id, {_method: 'delete'})
                    .then(response => {
                            if (response.status === 200) {
                                axios
                                    .get(rootUrl + '/tags')
                                    .then(response => (this.tags = response.data));
                            } else {
                                console.log('error');
                            }
                        }
                    );
            },
            getStatusById(status_id = null) {
                if (status_id) {
                    return  this.statuses.find(x => x.id === status_id);
                }

            }

        }

Я хочу создать следующий компонент с именем channels, и компонент будет таким же, как этот. Различия будут только в слове channels. Я не знаю, как использовать наследование в VueJs или добавить любой компонент TS. Так как я могу оптимизировать мой код. Я хочу импортировать любой компонент с именем http, установить его базовый компонент и исходный URL-адрес, и он будет работать как все подобные операции crud.

...