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: '#app', data: { message: 'Hello Vue.js!' }})
Angular<div ng-app="myApp" ng-controller="myCtrl"> {{message}}</div> var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.message = "Hello world";});
Vue の双方向データ バインディング Angular的双向数据绑定 vue虽然是一个轻量级的框架,提供的API确非常多,包括一些便捷的指令和属性操作,一般vue是指令使用(v-)操作符,相比angularjs指令使用(ng-)。其中vue.js还支持指令的简写方式: 简写方式: [](http://www.cnblogs.com/summer7310/p/url)) vue.渲染列表 Angularjs渲染列表 vue的循环 angular和vue的渲染差不多 vue和Angular处理用户输入<div id="app"> <p>{{ message }}</p> <input v-model="message"></div> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }})
<div ng-app="myApp" ng-controller="myCtrl"> <p>{{message}}</p> <input ng-model="message"></div> var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.message = "Hello world!";});
简写方式:<div id="app"> <ul> <li v-for="name in names"> {{ name.first }} </li> </ul></div> new Vue({ el: '#app', data: { names: [ { first: 'summer', last: '7310' }, { first: 'David', last:'666' }, { first: 'Json', last:'888' } ] }})
<div ng-app="myApp" ng-controller="myCtrl"> <li ng-repeat="name in names">{{name.first}}</li></div> var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.names = [ { first: 'summer', last: '7310' }, { first: 'David', last:'666' }, { first: 'Json', last:'888' } ]});
<ul> <li v-for="item in list"> <a :href="item.url">{{item.title}}</a> </li></ul>
<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>
<div id="app"> <p>{{ message }}</p> <button v-on:click="reverseMessage">Reverse Message</button></div> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, methods: { reverseMessage: function () { this.message = this.message.split('').reverse().join('') } }})
<div ng-app="myApp" ng-controller="myCtrl"> <p>{{ message }}</p> <button ng-click="reverseMessage()">Reverse Message</button></div> var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.message = "Hello world!"; $scope.reverseMessage = function() { this.message = this.message.split('').reverse().join('') }});
以上がAngularjs と Vue.js の違いは何ですか?簡単な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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