Angular 2.0. Разница @View @Component
Привет. Я новичок в Angular. Я тестирую Angular 2.0.
Я прочитал здесь tuto и руководство здесь, В паре шаблон указан в аннотации @Component
, тогда как в руководстве он находится в аннотации @View
. Поэтому мне было интересно, каковы различия между этими двумя подходами? Я просмотрел предварительный просмотр api, но объяснения не были ясны.
Ответы
Ответ 1
Обновление
@View()
был удален (я думаю, что в beta.13, CHANGELOG.md не упоминает об этом, хотя).
Оригинал
Между ними нет различий. Это просто сахара, что вы можете указать всю конфигурацию вида в Component
, поэтому нет необходимости импортировать декоратор View
.
Но в то же время существует необходимость оставаться View
decorator, поскольку он позволяет нам использовать разные представления для одного и того же компонента в зависимости от языка или типа носителя. Например:
@Component(/* ... */)
@View({
media: 'desktop',
template: 'Template for desktop'
})
@View({
media: 'mobile',
template: 'Template for mobile'
})
extends class Component() {}
Эта функция еще не реализована.
Ответ 2
Как сказано @Alexpods в ответе и @Eric в комментарии до того, когда angular2 находится в alpha @view, это juts необязательно, потому что все свойства в аннотации @view также включены в аннотацию @component, поэтому @view - это просто сахара, что вы можете указать всю конфигурацию вида в Component, поэтому нет необходимости импортировать View Decorator.
Обновлено до бета
@View устарел в последней версии, поэтому вы не можете его использовать.
если вы используете аннотацию @view по-прежнему, это может вызвать некоторую ошибку. поэтому единственным компонентом является место, в котором будут сохранены все параметры.
В соответствии с официальными лицами, декоратор метаданных @View устарел в версии beta.10.
Ответ 3
В соответствии с ChangeLogs of Angular v2.0.0-beta.11, при изменении изменений упоминается, что аннотация @View()
(ранее устаревшая) была удалена. Приложения должны использовать декоратор @Component()
.
Пожалуйста, просмотрите журнал изменений Angular2 здесь.
Ответ 4
Прежде всего, этот был устаревшим и теперь полностью ушел!
2.0.0-beta.10 (2016-03-17): аннотация @View() (ранее устаревшая) была удалена. Приложения должны использовать вместо этого декоратор @Component().
Итак, вам больше не нужно об этом беспокоиться. The @View был ранее представлен, потому что раннее мышление состояло в том, что в компоненте может быть несколько видов (например, мобильный вид), а использование было следующим:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
styleUrls: ['./app.component.scss']})
@View({
media: 'desktop',
template: '<h1>tablet<h1>'
})
@View({
media: 'mobile',
template: '<h1>mobile<h1>'
})
extends class Component() {}