目次
Angularjs と Vue.js の使用の比較
ホームページ ウェブフロントエンド jsチュートリアル Angularjs と Vue.js の違いは何ですか?簡単な比較

Angularjs と Vue.js の違いは何ですか?簡単な比較

Aug 29, 2020 am 10:39 AM
angularjs vue.js

Angularjs と Vue.js の違いは何ですか?簡単な比較

推奨される関連チュートリアル: 「angularjs チュートリアル

以下の理由により、Angular ではなく Vue を選択してください。もちろん、これはすべての人に適しているわけではありません。

Vue.js は API と設計の点で Angular よりもはるかにシンプルなので、すべての機能をすぐにマスターして開発に投資できます。

Vue.js は、より柔軟でオープンなソリューションです。これにより、Angular によって定められたルールに常に従うことなく、アプリケーションを希望どおりに編成できます。これは単なるビュー レイヤーであるため、必ずしも巨大な単一ページ アプリケーションにすることなく、既存のページに埋め込むことができます。これにより、他のライブラリと連携する余地が広がりますが、その分、アーキテクチャ上の決定をさらに行う必要があります。たとえば、Vue.js コアにはデフォルトではルーティングと Ajax 機能が含まれておらず、一般にアプリでモジュール ビルド システムを使用していることを前提としています。おそらくこれが最も重要な違いです。

Angular は双方向バインディングを使用し、Vue も双方向バインディングをサポートしますが、デフォルトは一方向バインディングであり、データは親コンポーネントから子コンポーネントに一方向で渡されます。大規模なアプリケーションでは一方向バインディングを使用して、データ フローを理解しやすくします。

Vue.js では、命令とコンポーネントがより明確に分離されています。ディレクティブは DOM 操作をカプセル化するだけですが、コンポーネントは独自のビューとデータ ロジックを備えた自己完結型の独立したユニットを表します。 Angular では、この 2 つの間に多くの混乱があります。

Vue.js はパフォーマンスが優れており、ダーティ チェックを使用しないため、最適化が非常に簡単です。スコープが変更されるたびにすべてのウォッチャーを再計算する必要があるため、ウォッチャーが増えると Angular はますます遅くなります。また、一部のウォッチャーが別の更新をトリガーした場合、ダイジェスト サイクルを複数回実行する必要がある場合があります。 Angular ユーザーは、ダーティ チェック ループの問題を解決するために難解な手法に頼ることがよくあります。場合によっては、多数のウォッチャーがあるスコープを最適化する簡単な方法が存在しないことがあります。

Vue.js では、依存関係の追跡と非同期キューの更新に基づく監視システムを使用しているため、この問題はまったく発生しません。すべてのデータ変更は、それらの間に明確な依存関係がない限り、独立してトリガーされます。必要な最適化は、v-for で track-by を使用することだけです。

Angularjs と Vue.js の使用の比較

以前のプロジェクトはすべて Angularjs を使用していました (ここでの主な焦点は Angularjs 1 であることに注意してください) Vue を初めて使用した後に短い比較メモを作成します.js 。
まず最初に、理論的にそれぞれの特徴について簡単に説明し、それからいくつかの小さな例を使用してそれらを説明しましょう。

Angular

  • 1、MVVM(モデル)(ビュー)(ビューモデル)
  • 2、モジュラー (Module) コントローラー (Contoller) 依存関係の注入:
  • 3、双方向データ バインディング: インターフェイスの操作をリアルタイムにデータに反映でき、データの変更を画面に表示できます。リアルタイムのインターフェース。
  • 4, 命令 (ng-click ng-model ng-href ng-src ng-if...)
  • 5, サービス Service($compile $filter $interval $timeout $http ...)

双方向データ バインディングの実装では、$scope.$watch (ビューからモデル)、$scope.$apply (モデルからビュー) を使用して、$scope 変数のダーティ値検出を使用します。 View) 検出、内部呼び出しはダイジェストです。もちろん、ダーティ チェックのために $scope.$digest を直接呼び出すこともできます。データが頻繁に変更される場合、ダーティ検出はブラウザのパフォーマンスを大量に消費することに注意してください。公式の最大ダーティ検出値は 2000 データです。

Vue

vue.js 公式 Web サイト: ユーザー インターフェイスを構築するための進歩的なフレームワークです。他の重量級フレームワークとは異なり、Vue はボトムアップの増分開発設計を採用しています。 Vue のコア ライブラリはビュー レイヤーのみに焦点を当てており、学習や他のライブラリや既存のプロジェクトとの統合が非常に簡単です。一方、Vue は、Vue エコシステムによってサポートされる単一ファイルのコンポーネントとライブラリを使用して開発された複雑な単一ページ アプリケーションを駆動する完全な機能を備えています。

Vue.js の目標は、可能な限りシンプルな API を通じて、応答性の高いデータ バインディングと合成ビュー コンポーネントを有効にすることです。

  • (1) モジュール化 現在、最も注目されている方法は、ES6 モジュール化をプロジェクト内で直接使用し、それを Webpack と組み合わせてプロジェクトをパッケージ化することです。単一の拡張子 .vue を持つコンポーネント ファイルには、テンプレート (html コード)、スクリプト (es6 コード)、スタイル (css スタイル) が含まれています。
  • (3) ルーティング、
  • vue は非常に便利です。小さい, 圧縮後の最小ソース コードは 72.9kb、gzip 圧縮後はわずか 25.11kb で、Angular と比較すると 144kb です。ルーティング プラグインなどの必要なライブラリ プラグインを使用して自分で使用できます。 ins (Vue-router)、Ajax プラグイン (vue-resource) など。

コードはそのすぐ下にあります

最初のコードはもちろん Hello World

vue

<div id="app">  {{ message }}</div> new Vue({  el: &#39;#app&#39;,  data: {    message: &#39;Hello Vue.js!&#39;  }})
ログイン後にコピー

Angular

<div ng-app="myApp" ng-controller="myCtrl"> {{message}}</div> var app = angular.module(&#39;myApp&#39;, []);app.controller(&#39;myCtrl&#39;, function($scope) {    $scope.message = "Hello world";});
ログイン後にコピー
これに対し、vue は json データ形式を使用して書き込みますdom と data であり、書き方は js データのエンコード形式に基づいており、理解しやすいです。

Vue の双方向データ バインディング

<div id="app">  <p>{{ message }}</p>  <input v-model="message"></div> new Vue({  el: &#39;#app&#39;,  data: {    message: &#39;Hello Vue.js!&#39;  }})
ログイン後にコピー

Angular的双向数据绑定

<div ng-app="myApp" ng-controller="myCtrl">  <p>{{message}}</p>  <input ng-model="message"></div> var app = angular.module(&#39;myApp&#39;, []);app.controller(&#39;myCtrl&#39;, function($scope) {    $scope.message = "Hello world!";});
ログイン後にコピー

vue虽然是一个轻量级的框架,提供的API确非常多,包括一些便捷的指令和属性操作,一般vue是指令使用(v-)操作符,相比angularjs指令使用(ng-)。其中vue.js还支持指令的简写方式:

  • (1)事件click

    简写方式:

  • (2)属性

    [](http://www.cnblogs.com/summer7310/p/url))
    简写方式:

vue.渲染列表

<div id="app">  <ul>    <li v-for="name in names">      {{ name.first }}    </li>  </ul></div> new Vue({  el: &#39;#app&#39;,  data: {    names: [      { first: &#39;summer&#39;, last: &#39;7310&#39; },      { first: &#39;David&#39;, last:&#39;666&#39; },      { first: &#39;Json&#39;, last:&#39;888&#39; }    ]  }})
ログイン後にコピー

Angularjs渲染列表

<div ng-app="myApp" ng-controller="myCtrl">  <li ng-repeat="name in names">{{name.first}}</li></div> var app = angular.module(&#39;myApp&#39;, []);app.controller(&#39;myCtrl&#39;, function($scope) {    $scope.names = [      { first: &#39;summer&#39;, last: &#39;7310&#39; },      { first: &#39;David&#39;, last:&#39;666&#39; },      { first: &#39;Json&#39;, last:&#39;888&#39; }    ]});
ログイン後にコピー

vue的循环

<ul>    <li v-for="item in list">        <a :href="item.url">{{item.title}}</a>    </li></ul>
ログイン後にコピー

angular和vue的渲染差不多

<div class="item" ng-repeat="news in  newsList">    <a ng-href="#/content/{{news.id}}">        <img ng-src="{{news.img}}" />        <div class="item-info">            <h3 class="item-title">{{news.title}}</h3>            <p class="item-time">{{news.createTime}}</p>        </div>    </a></div>
ログイン後にコピー

vue和Angular处理用户输入

<div id="app">  <p>{{ message }}</p>  <button v-on:click="reverseMessage">Reverse Message</button></div> new Vue({  el: &#39;#app&#39;,  data: {    message: &#39;Hello Vue.js!&#39;  },  methods: {    reverseMessage: function () {      this.message = this.message.split(&#39;&#39;).reverse().join(&#39;&#39;)    }  }})
ログイン後にコピー
<div ng-app="myApp" ng-controller="myCtrl"> <p>{{ message }}</p> <button ng-click="reverseMessage()">Reverse Message</button></div> var app = angular.module(&#39;myApp&#39;, []);app.controller(&#39;myCtrl&#39;, function($scope) {    $scope.message = "Hello world!";    $scope.reverseMessage = function() {        this.message = this.message.split(&#39;&#39;).reverse().join(&#39;&#39;)    }});
ログイン後にコピー

相关教程推荐:《angular教程》、《vue教程

以上がAngularjs と Vue.js の違いは何ですか?簡単な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vite が .env ファイルを解析する方法についての詳細な説明 vite が .env ファイルを解析する方法についての詳細な説明 Jan 24, 2023 am 05:30 AM

Vue フレームワークを使用してフロントエンド プロジェクトを開発する場合、デプロイ時に複数の環境をデプロイすることになりますが、開発環境、テスト環境、オンライン環境で呼び出されるインターフェイス ドメイン名が異なることがよくあります。どうすれば区別できるでしょうか?それは環境変数とパターンを使用することです。

Ace コード エディターを Vue プロジェクトに統合する方法の詳細な図による説明 Ace コード エディターを Vue プロジェクトに統合する方法の詳細な図による説明 Apr 24, 2023 am 10:52 AM

Ace は、JavaScript で書かれた埋め込み可能なコード エディターです。 Sublime、Vim、TextMate などのネイティブ エディターの機能とパフォーマンスに匹敵します。あらゆる Web ページや JavaScript アプリケーションに簡単に埋め込むことができます。 Ace は Cloud9 IDE のメイン エディタとして維持されており、Mozilla Skywriter (Bespin) プロジェクトの後継です。

vue のコンポーネント化とモジュール化の違いは何ですか vue のコンポーネント化とモジュール化の違いは何ですか Dec 15, 2022 pm 12:54 PM

コンポーネント化とモジュール化の違い: モジュール化はコード ロジックの観点から分割され、コードの階層化された開発が容易になり、各機能モジュールの機能の一貫性が保証されます。コンポーネント化は UI インターフェイスの観点から計画され、フロントエンドのコンポーネント化により UI コンポーネントの再利用が容易になります。

Vue3 で単体テストを作成する方法を調べる Vue3 で単体テストを作成する方法を調べる Apr 25, 2023 pm 07:41 PM

Vue.js は、今日のフロントエンド開発において非常に人気のあるフレームワークとなっています。 Vue.js が進化し続けるにつれて、単体テストの重要性がますます高まっています。今日は、Vue.js 3 で単体テストを作成する方法を検討し、いくつかのベスト プラクティスと一般的な問題と解決策を提供します。

vue3 の reactive() について詳しく話しましょう vue3 の reactive() について詳しく話しましょう Jan 06, 2023 pm 09:21 PM

前書き: vue3 の開発では、reactive は応答性の高いデータを実装するメソッドを提供します。これは日常の開発で頻繁に使用される API です。この記事では、著者はその内部動作メカニズムを探ります。

JSX 構文と Vue のテンプレート構文の簡単な比較 (利点と欠点の分析) JSX 構文と Vue のテンプレート構文の簡単な比較 (利点と欠点の分析) Mar 23, 2023 pm 07:53 PM

Vue.js では、開発者は、JSX 構文とテンプレート構文という 2 つの異なる構文を使用してユーザー インターフェイスを作成できます。どちらの構文にもそれぞれ長所と短所があるので、それらの違い、長所と短所について説明します。

vue がファイル スライス アップロードを実装する方法の簡単な分析 vue がファイル スライス アップロードを実装する方法の簡単な分析 Mar 24, 2023 pm 07:40 PM

実際の開発プロジェクトのプロセスでは、比較的大きなファイルをアップロードする必要がある場合がありますが、その場合はアップロードが比較的遅くなり、バックグラウンドでフロントエンドがファイルのスライスをアップロードする必要がある場合があります。これは非常に簡単です。たとえば、1Aギガバイトのファイル ストリームはいくつかの小さなファイル ストリームに分割され、インターフェイスはそれぞれの小さなファイル ストリームを配信するように要求されます。

Vue2実装APIの原理を解析する Vue2実装APIの原理を解析する Jan 13, 2023 am 08:30 AM

Vue3 のリリース以来、単語合成 API は Vue を書く学生の視野に入ってきました。合成 API が以前のオプション API よりもどれほど優れているかは誰もが聞いたことがあると思います。そして、@ のリリースにより、 vue/composition-api プラグイン、Vue2 学生もバスに乗れます. 次に、主に Response ref と Reactive を使用して、このプラグインがどのようにこれを実現しているかを詳細に分析します。

See all articles