目次
(1) モジュール化。現在、最もホットな方法は、プロジェクトで ES6 モジュール化を直接使用し、それをプロジェクトのパッケージ化に Webpack と組み合わせることです。
Vue と Angular 間の双方向データ バインディングの原則
(1) イベント click
略語:
<a @click="fn"> &lt ;/a>
vue.渲染列表
Angularjs渲染列表
vue的循环
angular和vue的渲染差不多
vue和Angular处理用户输入

AngularjsとVue.jsを使用した比較

Apr 10, 2018 am 10:59 AM
angularjs javascript vue.js

この記事の内容は、Angularjs と Vue.js の使用の比較に関するものです。必要な友達はそれを参考にしてください。



Angularjs と Vue.js の使用の比較


以前のプロジェクトはすべて Angularjs を使用していました (この記事では主に Angularjs 1 について説明していることに注意してください)。 Vue.js。

まず最初に、理論的にそれぞれの特徴について簡単に説明し、それからいくつかの小さな例を使用してそれらを説明しましょう。

Angular


1、MVVM (モデル) (ビュー) (ビューモデル)


2、モジュラー (モジュール) コントローラー (コントローラー) 依存関係の注入:

3、双方向データ バインディング :インターフェースの操作をリアルタイムにデータに反映でき、データの変更をリアルタイムにインターフェースに表示できます。


4, コマンド (ng-click ng-bind ng-model ng-href ng-src ng-if/ng-show...)

    5, サービス Service($compile $filter $interval $タイムアウト $http...)
  • 6、ルーティング (ng-Route ネイティブ ルーティング)、ui-router (ルーティング コンポーネント)
  • 7、Ajax カプセル化 ($http)
  • 双方向データを含むバインディング この実装では、$scope.$watch (ビューからモデル)、$scope.$apply (モデルからビュー) の検出を使用して、$scope 変数のダーティ値検出を使用します。内部呼び出しはダイジェストです。もちろん、$ を呼び出すこともできます。スコープを直接 .$digest はダーティ チェックを実行します。データが頻繁に変更される場合、ダーティ検出によりブラウザのパフォーマンスが大幅に消費されることに注意してください。公式の最大ダーティ検出値は 2000 データです。
  • Vue

  • vue.js 公式ウェブサイト: ユーザー インターフェイスを構築するための
  • 進歩的なフレームワーク

    のセットです。他の重量級フレームワークとは異なり、Vue はボトムアップの増分開発設計を採用しています。 Vue のコア ライブラリはビュー レイヤーのみに焦点を当てており、学習や他のライブラリや既存のプロジェクトとの統合が非常に簡単です。一方、Vue は、

    単一ファイル コンポーネント
  • Vue エコシステムでサポートされるライブラリ

    を使用して開発された複雑なシングルページ アプリケーションを強化することができます。

  • Vue.js の目標は、可能な限り単純な API を介して
  • レスポンシブ データ バインディング

    合成ビュー コンポーネント
  • を実装することです。

(1) モジュール化。現在、最もホットな方法は、プロジェクトで ES6 モジュール化を直接使用し、それをプロジェクトのパッケージ化に Webpack と組み合わせることです。

(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) など

Vue と Angular 間の双方向データ バインディングの原則

angular.js: ダーティ値check

angular.js はダーティ値検出を使用して、ビューを更新するかどうかを判断します。最も簡単な方法は、setInterval() を通じてデータ変更を検出するために定期的にポーリングすることです。 Angular は、指定されたイベントがトリガーされた場合にのみダーティ値検出を開始します。これは、おおよそ次のとおりです:

  • DOM イベント、たとえば、ユーザーがテキストを入力したり、ボタンをクリックしたりするなど。 (ng-click)

  • ) または $apply()

  • vue
  • :
  • データハイジャック

  • vue.js は、データハイジャックをパブリッシャー/サブスクライバーモデルと組み合わせて使用​​し、次の方法で各プロパティのセッターをハイジャックします。 Object.defineProperty() ゲッターは、データが変更されたときにサブスクライバーにメッセージをパブリッシュし、対応するリスニング コールバックをトリガーします。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/definePropertydefineProperty
  • コードはすぐ下にあります

  • 最初はもちろんHello Worldです

vue

<p id="app">
  {{ message }}
</p>

new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})
ログイン後にコピー
Angular
<p ng-app="myApp" ng-controller="myCtrl">
 {{message}}
</p>

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.message = "Hello world";
});
ログイン後にコピー
それに比べて、Vue は json データ形式を使用して dom とデータを記述します。記述スタイルは、理解しやすい js データ エンコード形式に基づいています。

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 は命令の省略形もサポートしています:

(1) イベント click

<a v-on: click="fn"></a>

略語:
< ;/a>

(2)属性

    <a v-bind: href="url"></a>
  • 略語:
    <a :href="url"></a>

vue.渲染列表

<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' }
    ]
  }
})
ログイン後にコピー

Angularjs渲染列表

<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' }
    ]
});
ログイン後にコピー

vue的循环

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

angular和vue的渲染差不多

<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>
ログイン後にコピー

vue和Angular处理用户输入

<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应用模块化的使用详解

Angular开发实践之服务端渲染_AngularJS

Vue.js的基础知识点总结

以上が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)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築 JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築 Dec 17, 2023 am 08:41 AM

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。

See all articles