この記事の内容は、Angularjs と Vue.js の使用の比較に関するものです。必要な友達はそれを参考にしてください。
Angularjs と Vue.js の使用の比較
まず最初に、理論的にそれぞれの特徴について簡単に説明し、それからいくつかの小さな例を使用してそれらを説明しましょう。
1、MVVM (モデル) (ビュー) (ビューモデル)
2、モジュラー (モジュール) コントローラー (コントローラー) 依存関係の注入:
3、双方向データ バインディング :インターフェースの操作をリアルタイムにデータに反映でき、データの変更をリアルタイムにインターフェースに表示できます。
4, コマンド (ng-click ng-bind ng-model ng-href ng-src ng-if/ng-show...)
Vue
のセットです。他の重量級フレームワークとは異なり、Vue はボトムアップの増分開発設計を採用しています。 Vue のコア ライブラリはビュー レイヤーのみに焦点を当てており、学習や他のライブラリや既存のプロジェクトとの統合が非常に簡単です。一方、Vue は、
単一ファイル コンポーネントを使用して開発された複雑なシングルページ アプリケーションを強化することができます。
と
合成ビュー コンポーネント(2) コンポーネント化、接尾辞 . vue 、テンプレート (html コード)、スクリプト (es6 コード)、スタイル (css スタイル) を含む (3) 双方向データ バインディング: インターフェイスの操作をリアルタイムでデータに反映でき、データの変化をリアルタイムでインターフェースに表示できます。
(4) コマンド (v-html v-bind v-model v-if/v-show...) (5) ルーティング (vue-router)
(6) vuexデータ共有
(7) Ajaxプラグイン(vue-resource、axios)
vue は非常に小さく、圧縮後の最小ソースコードは 25.11 kb で、必要なライブラリ プラグインを使用して自分で使用できます。ルーティング プラグイン (Vue-router) や Ajax プラグイン (vue -resource、axios) など
angular.js: ダーティ値check
angular.js はダーティ値検出を使用して、ビューを更新するかどうかを判断します。最も簡単な方法は、setInterval() を通じてデータ変更を検出するために定期的にポーリングすることです。 Angular は、指定されたイベントがトリガーされた場合にのみダーティ値検出を開始します。これは、おおよそ次のとおりです:
DOM イベント、たとえば、ユーザーがテキストを入力したり、ボタンをクリックしたりするなど。 (ng-click)
) または $apply()
コードはすぐ下にあります
vue<p id="app">
{{ message }}
</p>
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
<p ng-app="myApp" ng-controller="myCtrl">
{{message}}
</p>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.message = "Hello world";
});
Vue の双方向データ バインディング
<p id="app"> <p>{{ message }}</p> <input v-model="message"> </p> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' } })
Angular の双方向データ バインディング
<p ng-app="myApp" ng-controller="myCtrl"> <p>{{message}}</p> <input ng-model="message"> </p> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.message = "Hello world!"; });
Vue は軽量のフレームワークですが、いくつかの便利な命令や属性操作を含む多くの API を提供します。ディレクティブ (ng-) を使用する angularjs ディレクティブと比較して、(v-) 演算子を使用します。その中で、vue.js は命令の省略形もサポートしています:
<a v-on: click="fn"></a>
(2)属性
<a v-bind: href="url"></a>
略語:<a :href="url"></a>
<p id="app"> <ul> <li v-for="name in names"> {{ name.first }} </li> </ul> </p> new Vue({ el: '#app', data: { names: [ { first: 'summer', last: '7310' }, { first: 'David', last:'666' }, { first: 'Json', last:'888' } ] } })
<p ng-app="myApp" ng-controller="myCtrl"> <li ng-repeat="name in names">{{name.first}}</li> </p> 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>
<p class="item" ng-repeat="news in newsList"> <a ng-href="#/content/{{news.id}}"> <img ng-src="{{news.img}}" /> <p class="item-info"> <h3 class="item-title">{{news.title}}</h3> <p class="item-time">{{news.createTime}}</p> </p> </a> </p>
<p id="app"> <p>{{ message }}</p> <button v-on:click="reverseMessage">Reverse Message</button> </p> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, methods: { reverseMessage: function () { this.message = this.message.split('').reverse().join('') } } })
<p ng-app="myApp" ng-controller="myCtrl"> <p>{{ message }}</p> <button ng-click="reverseMessage()">Reverse Message</button> </p> 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 サイトの他の関連記事を参照してください。