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() {}