Angular - Подготовка проекта для нового приложения

Внимание

Данный материал является частью цикла статей «Frontend приложение на Angular». Не забудьте посмотреть другие статьи по этой теме :-)

  1. Angular - Подготовка проекта для нового приложения
  2. Angular - навигация и маршрутизация
  3. Angular - HttpClient, сервисы и файлы окружения
  4. Angular - Ленивая загрузка данных (lazy loading)
  5. Angular - обработка ошибок
  6. Angular - декораторы и директивы @Input и @Output
  7. Angular - валидация формы и POST запрос
  8. Angular - Работа с запросами PUT
  9. Angular - Работа с DELETE запросами

Установка Angular CLI и запуск нового проекта

Для начала, установим Angular CLI (интерфейс командной строки Angular), который очень поможет нам при подготовке проекта Angular и разработке проекта Angular в целом. Чтобы установить Angular CLI, введите в командной строке следующую команду:

npm install -g @angular/cli

Если у вас уже установлен Angular CLI, убедитесь, что у вас установлена последняя версия. Если нет, обновите его перед запуском проекта. Вы можете найти все инструкции здесь:https://github.com/angular/angular-cli.

После завершения установки мы собираемся создать новый проект.

Откройте код Visual Studio и в окне терминала (CTRL+~) перейдите по пути, по которому вы хотите разместить свой проект, и выполните команду:

ng new AccountOwnerClient

Появятся два вопроса. Первый вопрос - хотим ли мы, чтобы в нашем проекте была создана маршрутизация, а второй - о том, какой стиль мы хотим в нашем проекте. Мы ответим НЕТ (N) на первый вопрос и (CSS - просто нажмите Enter) на второй.

Создание проекта займет некоторое время. После завершения процесса создания мы собираемся открыть папку проекта внутри нашего редактора:

Сторонние библиотеки как часть подготовки проекта Angular

Мы собираемся использовать библиотеку начальной загрузки для стилизации, поэтому давайте установим ее с помощью команды:

npm install --save bootstrap

Он установит библиотеку, но нам также необходимо импортировать ее путь в файл angular.json. Поместите его прямо над styles.css:

После установки библиотеки начальной загрузки мы собираемся установить для нее определения типов. Для установки введите эту команду:

npm install --save @types/bootstrap

Сразу после этого давайте импортируем это определение типа в файл tsconfig.app.json:

Чтобы установить библиотеку JQuery, введите следующую команду:

npm install --save jquery
Для типов JQuery мы должны выполнить:
npm install --save @types/jquery

Вот так должен выглядеть массив скриптов в файле angular.json:

"scripts": [
	"./node_modules/jquery/dist/jquery.min.js",
	"./node_modules/bootstrap/dist/js/bootstrap.min.js"
]

И измените импорт для типов:

"types": [
    "jquery",
    "bootstrap"
]

Для установки JQueryUI выполните:

npm install --save jqueryui

а для типов выполнить:

npm install --save @types/jqueryui

Вот так должны выглядеть стили и массив скриптов:

"styles": [
	"./node_modules/bootstrap/dist/css/bootstrap.min.css",
	"./node_modules/jqueryui/jquery-ui.min.css",
	"src/styles.css"
  ],
"scripts": [
	"./node_modules/jquery/dist/jquery.min.js",
	"./node_modules/bootstrap/dist/js/bootstrap.min.js",
	"./node_modules/jqueryui/jquery-ui.min.js"
  ],

Импорт для типов должен выглядеть так:

"types": [
  "jquery",
  "bootstrap",
  "jqueryui"
]

На этом установка зависимостей завершается.

Теперь все библиотеки установлены и импортированы в нужные файлы.

Следующим шагом будет добавление наших компонентов в проект.

Компоненты в Angular

Давайте немного поговорим об Angular. Angular - это платформа для создания приложений SPA (одностраничных приложений). Поэтому мы собираемся сгенерировать все наши страницы внутри одной страницы. Поэтому у нас есть только страница index.html. На странице index.html весь контент будет сгенерирован внутри селектора <app-root></app-root> из файла app.component.ts.

Загляните в файл app.component.ts:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'AccountOwnerClient';
}

Каждый компонент должен импортировать Component из пакета @angular/core. Мы будем импортировать больше вещей, когда они нам понадобятся. Также вы могли заметить декоратор @Component внутри кода. Это место, где мы создаем наш селектор (он такой же, как тег app-root в файле index.html). Кроме того, мы связываем шаблон HTML для этого компонента с templateUrl и файлы CSS с этим компонентом с помощью styleUrls. StyleUrls - это массив строк, разделенных запятыми. В конце концов, мы создаем наш класс для компонента.

Теперь, если мы посмотрим на файл app.module.ts, который очень важен для подготовки проекта Angular и вообще для разработки, мы заметим этот код:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

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

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

В этом файле мы собираемся импортировать необходимые модули, компоненты и сервисы. Мы собираемся использовать массив объявлений для импорта наших компонентов и массив imports для импорта наших модулей. Также мы собираемся использовать массив провайдеров для регистрации наших сервисов.

Создание нового компонента

Чтобы создать новый компонент с именем Home, давайте выполним следующую команду:

ng g component home --skipTests

С помощью этой команды мы создаем компонент Home с тремя файлами (.ts, .html, .css). А добавляя флаг –skipTests, мы предотвращаем создание тестового файла.

Теперь мы можем проверить Home component:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

Здесь мы импортируем интерфейс OnInit, который определяет функцию ngOnInit. Эта функция будет выполнять любую внутреннюю логику, как только компонент инициализируется. Обратите внимание на конструктор. Конструктор предназначен только для внедрения сервиса в компонент. Для любого действия, которое необходимо выполнить при инициализации компонента, используйте метод ngOnInit.

Подробнее про App.Module

Если мы проверим файл app.module.ts, мы увидим, что наш новый компонент импортирован с помощью нашей предыдущей команды:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

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

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Итак, как мы видим, Angular CLI создает все это за нас.

Хотя одного модуля достаточно для всего приложения, мы все равно хотим создать больше модулей.

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

Дополнительный контент в компоненте Home

Давайте изменим файл компонента Home:

export class HomeComponent implements OnInit {

  public homeText: string;

  constructor() { }

  ngOnInit() {
    this.homeText = "WELCOME TO ACCOUNT-OWNER APPLICATION";
  }

Затем добавим новый класс в файл home.component.css:

.homeText{
    font-size: 35px;
    color: red;
    text-align: center;
    position: relative;
    top:30px;
    text-shadow: 2px 2px 2px gray;
}

Чтобы продолжить, изменим файл home.component.html:

<p class="homeText">{{homeText}}</p>

Затем изменим файл app.component.html, просто чтобы проверить, работает ли это:

<div class="container">
  <div class="row">
      <div class="col">
        <app-home></app-home>
      </div>
  </div>
</div>

Теперь в терминале введите ng serve и дождитесь компиляции приложения. Сразу после этого запустите браузер и перейдите по адресу: localhost:4200. Вы должны увидеть приветственное сообщение на экране из компонента Home.

Заключение

Прямо сейчас у нас есть рабочий компонент и приложение Angular, которое вы можете запустить в своем браузере. Но это только начало. У нас впереди долгий путь, потому что есть еще много важных функций Angular, которые нужно ввести в проект.

Прочитав этот пост, вы узнали:

  • Способ установки сторонних библиотек
  • Обзор компонентов Angular
  • Как создавать компоненты Angular
  • И несколько фактов о модулях в Angular

Спасибо за чтение и надеюсь, что вы нашли в нем что-то полезное.

В следующей статье, мы покажем вам, как создать навигацию в проекте, а также как использовать маршрутизацию.