Skip to content

Commit

Permalink
misc improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktoryiaR committed Oct 6, 2019
1 parent d53549a commit 6875ab9
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions component.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

Одним из подходов в веб-разработке \(и разработке программного обеспечения в целом\) является компонентная архитектура. За последние годы она приобрела большую популярность. Что же такое компонент?

В своей статье [Сервис-ориентированная архитектура (SOA) vs. Компонентная Архитектура](http://petritsch.co.at/download/SOA_vs_component_based.pdf) Хельмут Петритш определяет компонент следующим образом:
В своей статье [Сервис-ориентированная архитектура \(SOA\) vs. Компонентная Архитектура](http://petritsch.co.at/download/SOA_vs_component_based.pdf) Хельмут Петритш определяет компонент следующим образом:

> Компонент - это программный объект, предназначенный для взаимодействия с другими компонентами, инкапсулирующий определенный функционал или набор функционалов. Компонент имеет четко определенный интерфейс и соответствует предписанному поведению, общему для всех компонентов в архитектуре.
> Компонент - это программный объект, предназначенный для взаимодействия с другими компонентами, который содержит в себе определенный функционал. Компонент имеет четко определенный интерфейс и соответствует предписанному поведению, общему для всех компонентов в архитектуре.
В веб-приложениях **компонент контролирует участок экрана, называемый представлением (view)**. Это часть того, что вы в конечном итоге увидите на экране. У него есть шаблон, который определяет его визуальную структуру. У него также есть логика, которая определяет его поведение и динамические значения. Логическая часть - это JavaScript код и называется она контроллером (controller).
В веб-приложениях **компонент контролирует участок экрана, называемый представлением \(view\)**. Это часть того, что вы в конечном итоге увидите на экране. У него есть шаблон, который определяет его визуальную структуру. У него также есть логика, которая определяет его поведение и динамические значения. Логическая часть - это JavaScript код и называется она контроллером \(controller\).

Ниже представлена диаграмма компонента в Angular, а под ней - итоговый результат на странице в браузере.

Expand All @@ -28,7 +28,7 @@ export class AppComponent {
{% endcode-tabs-item %}
{% endcode-tabs %}

У него есть один элемент с именем "title". Это свойство (property), которому вы можете присвоить значение. Здесь ему присваивается значение "app".
У него есть один элемент с именем "title". Это свойство \(property\), которому вы можете присвоить значение. Здесь ему присваивается значение "app".

Angular заботится о синхронизации элементов компонента с шаблоном компонента. Таким образом, мы можем легко использовать элемент `title` в шаблоне. Посмотрите на шаблон, прикрепленный к компоненту в файле `app.component.html`. В верхней части вы увидите код, подобный следующему:

Expand All @@ -42,9 +42,9 @@ Angular заботится о синхронизации элементов ко
{% endcode-tabs-item %}
{% endcode-tabs %}

Двойные фигурные скобки и их содержание называются **интерполяцией (interpolation)**. Это одна из форм **привязки данных (data binding)** в Angular. Как мы упоминали ранее, код в этом файле не используется как есть, когда браузер отображает компонент. Angular компилирует его в JavaScript код. На одном из этапов компиляции он ищет интерполяции внутри шаблона. Содержимое интерполяции - это "шаблонное выражение Angular (Angular template expression)" \(оно очень похоже на JavaScript\). Выражение вычисляется во время выполнения - в рантайме (runtime) - а затем вы видите результат.
Двойные фигурные скобки и их содержание называются **интерполяцией \(interpolation\)**. Это одна из форм **привязки данных \(data binding\)** в Angular. Как мы упоминали ранее, код в этом файле не используется как есть, когда браузер отображает компонент. Angular компилирует его в JavaScript код. На одном из этапов компиляции он ищет интерполяции внутри шаблона. Содержимое интерполяции - это "шаблонное выражение Angular \(Angular template expression\)" \(оно очень похоже на JavaScript\). Выражение вычисляется во время выполнения - в рантайме \(runtime\) - а затем вы видите результат.

Интерполяция - одна из самых сильных и основных функций Angular. Она существует с самого начала Angular - с самой первой версии \(AngularJS\) - и позволяет очень легко вставлять динамические данные в представление.
Интерполяция - одна из самых мощных и базовых возможностей Angular. Она существует с его самого начала - с самой первой версии \(AngularJS\) - и позволяет очень легко вставлять динамические данные в представление.

В нашем компоненте выражение является просто свойством класса компонента - `title`. **Давайте попробуем изменить его.** Попробуйте проделать следующие действия и посмотрите результат в браузере. \(При каждом изменении файла браузер обновляется автоматически!\)

Expand Down Expand Up @@ -106,7 +106,7 @@ h1 {

## Inline Template

Давайте переместим шаблон, чтобы он стал **встроенным (inline)** в определении компонента. Это поможет нам управлять им, одновременно глядя на его функциональность. В файле `app.component.ts` замените строку
Давайте переместим шаблон, чтобы он стал **встроенным \(inline\)** в определение компонента. Это поможет нам управлять им, одновременно глядя на его функциональность. В файле `app.component.ts` замените строку

{% code-tabs %}
{% code-tabs-item title="src/app/app.component.ts" %}
Expand All @@ -128,7 +128,7 @@ template: ``,

Обратите внимание на **обратные кавычки** - **\`** - они используются для определения литералов шаблона, которые являются новыми в JavaScript \(ES6\). С их помощью вы можете определить многострочные строки. У них есть еще одна интересная возможность: с легкостью использовать переменные и выражения JavaScript внутри строки \(без отношения к привязке Angular выражений в шаблоне\). Вы можете прочитать об этом подробнее в [документации MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals).

Убедитесь, что вы заменили `templateUrl` на` template`, и не забывайте запятую в конце строки.
Убедитесь, что вы заменили `templateUrl` на` template`, и не забудьте запятую в конце строки.

Теперь вместо того, чтобы брать контент из исходного шаблона, мы вставим более простой шаблон, с которым мы можем работать. Поставьте курсор между обратными кавычками, нажмите Enter и вставьте шаблон HTML:

Expand All @@ -150,14 +150,14 @@ template: `

**Мы рекомендуем продолжить этот урок, используя встроенные шаблоны в компонентах.** Особенно, если вы работаете на ноутбуке с небольшим экраном, где недостаточно места для одновременного открытия двух файлов.

Давайте сконфигурируем Angular CLI использовать встроенный шаблон по умолчанию. В терминале выполните команду: `ng set defaults.component.inlineTemplate true`. Теперь у каждого компонента, который вы создадите, будет встроенный шаблон, а HTML-файл не будет создан.
Давайте сконфигурируем Angular CLI использовать встроенный шаблон по умолчанию. В терминале выполните команду: `ng config schematics.@schematics/angular.component.inlineTemplate true`. Теперь у каждого компонента, который вы создадите, будет встроенный шаблон, а HTML-файл не будет создан.

Если вы хотите продолжить этот урок с шаблонами в отдельных файлах HTML, не запускайте эту команду и используйте сгенерированные файлы `.html` для этого.

> **Примечание:** Вы можете указать, что вы хотите использовать встроенные шаблоны во всем проекте несколькими способами:
>
> * При создании проекта передать флаг `-it` или `--inline-template` следующим образом: `ng new todo-list -it`
> * После создания проекта добавить его в конфигурацию, чтобы компоненты, созданные с этого момента, имели встроенный шаблон: `ng set defaults.component.inlineTemplate true`. \(Начиная с версии 6 вам нужно будет использовать команду `ng config projects.YOURPROJECTNAME.scmatics.@schematics/angular:component.inlineTemplate true`\). Это добавляет строку `inlineTemplate: true` в конфигурационный файл Angular CLI. `.angular-cli.json` \(`angular.json` в версии 6 \). Вы также можете редактировать этот файл напрямую.
> * После создания проекта добавить его в конфигурацию, чтобы компоненты, созданные с этого момента, имели встроенный шаблон: `ng config projects.YOURPROJECTNAME.schematics.@schematics/angular:component.inlineTemplate true`. Это добавляет строку `inlineTemplate: true` в конфигурационный файл Angular CLI. `angular.json`. Вы также можете редактировать этот файл напрямую.
> * Если вы не настроили встроенные шаблоны по умолчанию, вы можете указать это для каждого компонента при его создании, передавая флаг `-it` или `--inline-template`. Например: `ng generate header -it`.
Так же, как мы используем встроенный шаблон, мы можем использовать встроенные стили. Но пока мы будем хранить стили в отдельном файле.
Expand Down

0 comments on commit 6875ab9

Please sign in to comment.