Это angular2 MVC?
Я работал в Angular 1. У него явно был контроллер, который выполнял роль посредника между View и Model. Я понял, что в Angular 2 у нас нет контроллера как такового.
Так можем ли мы по-прежнему называть Angular 2 фреймворком MVC? Я знаю, что MVC - это шаблон проектирования, и вы реализуете его на любом языке. Но, что касается Angular 1, я слышал от многих, что это MVC-фреймворк, и в большинстве примеров, которые я видел, ясно сказано, что Angular 1 - это MVC, а Controller отделяет Model от View. Итак, мне было интересно, теперь, когда есть компоненты в Angular2, мы можем по-прежнему называть его MVC? Или, поскольку Компоненты сами по себе следуют парадигме MVC, потому что я вижу, что в каждом Компоненте мы делаем отдельные View и Data и используем привязку, возможно, мы все еще можем назвать ее как MVC.
3 ответа
Angular 2 - это больше компонентная архитектура. Вы можете принимать все как компоненты, такие как директивы, сервисы и так далее. Хотя директивы и сервисы фактически предназначены для поддержки базовых компонентов, они также определяются аналогичным образом. Базовый компонент содержит зависимости, детали представления и объявление класса, которые могут рассматриваться как контроллеры. Таким образом, четко определенный компонент состоит из отдельного набора архитектуры MVC.
например (угловая 2 альфа версия):
import {Component, View, bootstrap, provide, NgClass} from 'angular2/angular2';
@Component({
selector : "my-home"
})
@View({
directives : [NgClass, EditSettingPanel],
styles: ['.hidden{ display : none} .visible{ display : block}'],
templateUrl : "views/blog-panel.html"
})
export class home {
}
}
В приведенном выше примере вы можете видеть, что класс "home" может быть принят как контроллер, View написан с помощью декоратора @View. Настройка компонента предоставляется декомпилятором @component. Также вы можете увидеть различные практики внедрения зависимостей.
РЕДАКТИРОВАТЬ:: Пример (Текущая угловая версия 2/4)
import { Component } from '@angular/core';
@Component({
selector: 'custom-component',
templateUrl: './template.html',
styleUrls: ['./style.scss'],
})
export class CustomComponent {}
В двух словах, angular 2 - это основанная на компонентах инфраструктура на основе архитектуры MVC.
Компоненты и директивы - это контроллеры, шаблон (HTML), обрабатываемый Angular, а браузер - это представление, и если вы не объедините модель с контроллером, вы получите шаблон MVC.
Angular 2 внутренне следует за MVC, потому что его компонент следует полной архитектуре MVC.
Но если говорить о том, что мы делаем в angular2, это MV*. Это может быть MVVM или MVC. Это не полностью MVC.