2016-06-07 3 views
11

Если я запускаю это:Почему angular-cli создает компонент/shared/index.ts?

ng g component components/blogs 

я

app 
+--components 
| +--blogs 
| | +--shared 
| | | +--index.ts    // what's this for? 
| | +--blogs.component.css 
| | +--blogs.component.html 
| | +--blogs.component.ts 
| | +--blogs.component.spec.ts // unit tests! 
| | +--index.ts 

Я понимаю, все остальное, но что такое /blogs/shared/index.ts для? Почему компонент имеет общую папку, если эта папка компонента предназначена только для компонента?

ответ

17

Идея файла index.ts в общем каталоге - это нечто, называемое бочкой.

Целью ствола является консолидация импорта. Он будет экспортировать элементы, содержащиеся в совместно сделать импорт в blogs.component.ts очиститель ...

приложения/компоненты/блоги/Shared/blogs.service.ts

export class BlogsService { ... } 

приложения/компоненты/блоги /shared/blog.model.ts

export class Blog { ... } 

приложения/компоненты/блоги/Shared/index.ts

export * from './blogs.service'; 
export * from './blog.model'; 

приложения/компоненты/блоги/blogs.component.ts

// without barrel 
import { BlogsSerivce } from './shared/blogs.service'; 
import { Blog } from './shared/blog.model'; 

// with barrel 
import { BlogService, Blog } from './shared'; 

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

ССЫЛКА Вы можете прочитать о баррелей в официальном style guide (благодаря Гюнтера Zöchbauer)

+2

Смотрите также https://angular.io/docs/ts/latest/glossary.html#!#B –

 Смежные вопросы

  • Нет связанных вопросов^_^