Является ли экземпляр / компонент Vue только ViewModel в MVVM? - PullRequest
0 голосов
/ 11 декабря 2018

Начиная с Vue Docs :

В Vue.js каждый экземпляр Vue является ViewModel.

Я немного запуталсяоб этом после прочтения большого количества статей о шаблоне проектирования, таких как MVC, MVP и MVVM.

Все мы знаем, что в экземпляре Vue или компоненте Vue (который также является экземпляром Vue) у нас есть <template>, которые используют синтаксис на основе HTML. Не является ли деталь представлением в MVVM?

И в компоненте Vue есть data(), computed. Разве они не Модель в MVVM?

Ниже приведена структура Vue SFC, которую я делю на Model, View и ViewModel.Если с этим что-то не так.Пожалуйста, помогите мне исправить это, а также помогите мне лучше понять MVVM при использовании JavaScript-Framework на основе MVVM.

<template>
    <!-- the template part should be the View in MVVM since they don't contain any business logic but only the UI components. Which perfectly match the description of the View in MVVM.-->
</template>
<script>
export default = {
    data () {
        return {
            // the data should be the Model in MVVM, because they stand for their own and are the "actually" content of the app
        }
    },
    computed: {
        // computed properties should also be the Model in MVVM. When using vuex, I can, for example, get data with HTTP GET request through the vuex actions and parse the data, store it in the vuex store. When I need to use them, I get them from the computed in any child component I would like to.
    },
    methods: {
        // this should belong to the ViewModel in MVVM.
    }
}
</script>
<style scoped>
/* the style should be the View in MVVM. Because they are only responsible for how to present the data to the user.*/
</style>

И, следовательно, я думаю store.js (используется для vuex в качестве централизованного управления состоянием)также принадлежит модели.Поскольку он содержит почти всю бизнес-логику и сохраняет данные, которые мы получили от другого API или от самого пользователя.

Так что, в конце концов, когда мы читаем, фреймворк базируется на MVVM или MVC или MVW (Который Angular говорит: Model View Что это действительно означает и имеет ли это значение для реальной веб-разработки?

1 Ответ

0 голосов
/ 11 декабря 2018

Лично я считаю, что для базового примера вам не стоит углубляться в шаблоны проектирования.

При создании большого приложения vue, которое включает в себя несколько модулей состояния vuex и слой API.Вы можете думать о дизайне шаблона.Но я чувствую, что это все еще тривиально для веб-приложений.См. Ниже относительно какого-либо ответа (если я ошибаюсь, пожалуйста, исправьте меня).

шаблон - Просмотр

данные & состояние хранилища vuex - Модель

получатели & вычислено - ViewModel

действия & apiLayer - ViewController

мутации - ViewController -> ViewModel

viewController - Когда представление выполняет действия, которые записывают в модель.Как инициирование извлечения данных в бэкэнд и заполнение модели извлеченными данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...