Как `angular2` экспортировать компонент?

Я создаю такой компонент: (из примера)

import {Component} from 'angular2/core';

@Component({
    selector: 'my-app',
    template: '<h1> ~ My First Angular 2-0 App By Gulp Automation ~ </h1>'
})

export class AppComponent { } //what it is exporting here?

и импортирование в другой модуль:

import {bootstrap}    from 'angular2/platform/browser'
import {AppComponent} from './app.component' //what it imports here

bootstrap(AppComponent); //it works.

в index.html:

<script>
      System.config({
        packages: {        
          app: {
            format: 'register', //what is means?
            defaultExtension: 'js'
          }
        }
      });
      System.import('app/boot')
            .then(null, console.error.bind(console));
    </script>

Я не могу понять логику, кто-нибудь мне помогает?

заблаговременно.

Ответ 1

Я думаю, что эти ссылки могут вам помочь: https://angular.io/guide/quickstart и https://daveceddia.com/angular-2-dependencies-overview/.

Фактически SystemJS несет ответственность за реализацию логики модуля и связи между ними. Для этого вам нужно включить файл SystemJS (systemjs) на странице HTML и настроить его с помощью System.config и, наконец, загрузить основной компонент вашего приложения Angular2 с помощью System.import.

Вы явно используете SystemJs при запуске System.import. В других элементах вашего приложения инструмент используется неявно, особенно если вы используете TypeScript. В этом случае достаточно простого import для импорта другого модуля. Если вы посмотрите на файлы с расширением (файлы JavaScript), вы увидите, что используется SystemJS.

Приложение Конфигурация SystemJS (https://angular.io/docs/ts/latest/quickstart.html#!#systemjs) может дать вам несколько советов о конфигурации SystemJS для приложение Angular2

Вот ссылка на документацию относительно форматов модулей (атрибут format в блоке System.config): https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md, Используя значение register для атрибута format, вы указываете, что System.register используется для определения модулей.

Надеюсь, это поможет вам, Thierry

Ответ 2

класс экспорта AppComponent {}//что он здесь экспортирует?

Это объясняется (кратко) в Обзор архитектуры:

export class AppComponent { }

В заявлении export TypeScript говорится, что это модуль, класс AppComponent которого общедоступен и доступен для других модулей приложения.

Когда нам нужна ссылка на AppComponent, мы импортируем его следующим образом:

import {AppComponent} from './app.component';

Оператор import сообщает системе, что он может получить AppComponent из модуля с именем app.component, расположенным в соседнем файле. Имя модуля (id модуля AKA) часто совпадает с именем файла без его расширения.

Ответ 3

Компонент как модуль, который упаковывает некоторый код внутри, и другой модуль, который следует использовать, когда u экспортирует этот "модуль"

import {AppComponent} from './app.component'

AppComponent - это имя класса, angular2 знать имя компонента "AppComponent", которое было отправлено, "./app.component" означает "тот же каталог и найти файл с именем" app.component.ts "

Я новичок в ng2, надеюсь, что это поможет u