0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1. はじめに

これまでは Vue.js についてまとめていましたが、今後は Angular についてまとめていきます。
初めて Angular を触ったとき、「Vue.js と Java を足して2で割ったような感じだな」という印象を持ちました。
そこで本記事では、Vue.js や Java と比較しながら、Angular をできるだけ分かりやすく解説していきます。

2. Angularとは

Angular は Google が開発・提供している TypeScript ベースのフロントエンドフレームワークです。
大規模な Web アプリケーションを効率よく作り、長く保守していくために使われます。

UI(ユーザーインターフェース) とは
画面の見た目や操作感など、ユーザーが直接触れる部分のことです。
参考

特徴

① 双方向データバインディング

Angular では、データと画面表示をリアルタイムで同期できます。
[(ngModel)] という構文を使えば、入力した値が即座に画面に反映されます。

<!-- 入力した文字がすぐ表示される -->
<input [(ngModel)]="loginId" placeholder="ログインIDを入力" />
<p>入力した文字は {{ loginId }}</p>

// コンポーネント側(TypeScript)
loginId: string = '';

② コンポーネント指向 + 標準機能が豊富

アプリは「コンポーネント」という部品ごとに分けて作ります。
さらに、ルーティング・フォームバリデーション・HTTP通信 など、多くの機能が最初から入っています。
追加ライブラリをあまり使わなくても、大規模開発が可能です。

ルーティングとは
URLごとに表示する画面やコンポーネントを切り替える仕組みのこと

フォームバリデーション とは
入力フォームの内容をチェックし、条件を満たさない場合にエラーを表示すること。

  • 例: 必須入力、メール形式、文字数制限など。

HTTP通信 とは
ブラウザからサーバーにデータを送受信すること。

  • 例: APIを呼び出してデータを取得する。

③ TypeScript が標準

Angular は最初から TypeScript が使える状態です。
型付け(データ型を決めておくこと)によってバグを早く見つけられ、大人数での開発でも安心です。
ただし、JavaScriptしか触ったことがない人は最初に学習コストがかかります。

3. Angularが向いているサービス

  1. 大規模な Web アプリ
    開発ルールやフォルダ構成が整っており、大人数での開発に向いています。

  2. 長期保守が必要なシステム
    型安全(型の一貫性を守ってバグを防ぐこと)・テスト機能・モジュール分割(機能ごとに部品化)など、品質管理に必要な仕組みが揃っています。

  3. 複雑な UI の SPA(シングルページアプリケーション)
    ルーティング(URLに応じた画面切替)により、ページ遷移なしで快適に画面切り替えが可能です。

4. 環境構築の方法(Windows)

私が試した方法は以下の通りです。

Node.js(npm) をインストール
② Angular CLI をインストール

npm install -g @angular/cli

③ プロジェクトを作成

ng new プロジェクト名

④ 必要に応じて追加ライブラリ(UIフレームワークなど)をインストール
例: Angular Material

ng add @angular/material

⑤ 開発サーバー起動

ng serve

ブラウザで http://localhost:4200 にアクセスすると動作確認できます。

5. Vue.js と Angular の比較表

項目 Vue.js Angular
開発元 Evan You 氏(個人) → コミュニティ主導 Google
言語 JavaScript(オプションでTypeScript) TypeScript 前提
学習コスト 比較的低い(HTML/CSS/JSベース) やや高い(TypeScriptやDI、RxJSなど学習必要)
向いている規模 中小規模 大規模・長期開発
データバインディング構文 v-model="value" [(ngModel)]="value"
標準機能 軽量で必要機能のみ。ルーターや状態管理は追加で導入 ルーティングフォームバリデーションHTTP通信、テスト機能など標準搭載
更新方式 仮想DOM(変更部分のみ再描画) 変更検知(ゾーンベース)+差分更新
UIライブラリ例 Vuetify、Element Plus Angular Material、PrimeNG
SPA対応 Vue Router使用 Angular Router標準搭載
学習のしやすさ HTML/JS経験者なら短期間で習得可能 TypeScriptや構造に慣れるまで時間が必要

6. Vue.js と Angular の比較(コード面)

Vue.js の場合

<template>
  <div>
    <input v-model="loginId" placeholder="ログインIDを入力" />
    <p>入力した文字は {{ loginId }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loginId: ''
    }
  }
}
</script>

Angular の場合

<!-- app.component.html -->
<input [(ngModel)]="loginId" placeholder="ログインIDを入力" />
<p>入力した文字は {{ loginId }}</p>

// app.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent {
  loginId: string = '';
}

ポイント比較

  • Vueは v-model、Angularは [(ngModel)] で双方向バインディング
  • Vueはテンプレートとロジックを1つのファイルにまとめることが多い(SFC構造:HTML・CSS・JSを1ファイルにまとめる)
  • AngularはHTMLテンプレートとTypeScriptコードを分けるのが基本(1つのコンポーネントを作成するのに、HTMLファイルとCSSファイルとTypeScriptファイルの最低3ファイルを作成するので、Vueを触ってからだとファイルの多さに驚きました。)

7. さいごに

Angular は Vue より学習コストは高めですが、大規模・長期的な開発では非常に強力なフレームワークです。
今後は Angular の基本的な書き方や、Vue との違いをより具体的に解説していきます。

また、実際にAngularに触れてみたい方は下記のUdemyを見てみてください。
AngularのUdemyリンクです。(公式のチュートリアルの解説の解説しているのでおすすめです。)
https://istech.udemy.com/share/10bnSz3@bT0tZSeFRCELMryPPhoiEGErcWjFdgei0LqGVjiUWCtj2lQ6WSvE15EfY5_KIqWzeA==/

公式のチュートリアルを触ってみるのもおすすめです。
https://master--angular-ja.netlify.app/start

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?