Perbezaan: 1. Angularjs menggunakan "pengesan nilai kotor" untuk membandingkan sama ada data telah berubah untuk mencapai pengikatan data dua hala manakala Vue menggunakan "perampasan data" digabungkan dengan cara "mod penerbit-pelanggan". pengikatan data dua hala. 2. Arahan vue menggunakan operator "v-", dan arahan angularjs menggunakan "ng-".
Persekitaran pengendalian tutorial ini: sistem windows7, versi vue2.9.6&&Angular9, komputer DELL G3.
Projek sebelumnya semuanya menggunakan Angularjs, (sila ambil perhatian bahawa artikel ini terutamanya bercakap tentang Angularjs 1) Selepas penggunaan awal Vue.js Nota perbandingan mudah.
Pertama sekali, mari kita bercakap secara ringkas tentang ciri masing-masing secara teori, dan kemudian gunakan beberapa contoh kecil untuk menggambarkannya.
Pelaksanaan pengikatan data dua hala menggunakan pengesanan nilai kotor pembolehubah $skop, menggunakan $scope.$watch (lihat ke model), $scope.$apply (model untuk melihat) pengesanan, dalaman Semua panggilan adalah digest Sudah tentu, anda juga boleh menghubungi $scope.$digest terus untuk pemeriksaan kotor. Perlu diingat bahawa apabila data berubah dengan sangat kerap, pengesanan kotor akan memakan banyak prestasi pelayar Nilai pengesanan kotor maksimum rasmi ialah 2000 keping data.
tapak web rasmi vue.js: Ia ialah rangka kerja progresif untuk membina antara muka pengguna. Tidak seperti rangka kerja heavyweight lain, Vue menggunakan reka bentuk pembangunan tambahan dari bawah ke atas. Pustaka teras Vue hanya menumpukan pada paparan lapisan , dan sangat mudah dipelajari serta disepadukan dengan perpustakaan lain atau projek sedia ada. Vue, sebaliknya, mampu sepenuhnya menjanakan aplikasi satu halaman kompleks yang dibangunkan dengan Komponen Fail Tunggal dan Perpustakaan yang disokong oleh ekosistem Vue.
Matlamat Vue.js adalah untuk melaksanakan pengikatan data responsif dan komponen paparan tersusun melalui API yang paling mudah.
vue sangat kecil, kod sumber min termampat ialah 72.9kb , selepas pemampatan gzip Ia hanya 25.11kb, iaitu 144kb berbanding dengan Angular Anda boleh menggunakannya sendiri dengan pemalam perpustakaan yang diperlukan, seperti pemalam penghalaan (Vue-router), pemalam Ajax (vue-. sumber, aksios), dsb.
Prinsip pengikatan data dua hala antara Vue dan Angular###
sudut. js: Semakan nilai kotor
js menggunakan pengesanan nilai kotor untuk membandingkan sama ada data telah berubah untuk memutuskan sama ada untuk mengemas kini paparan mengesan perubahan data melalui setInterval(). Sudah tentu, Google tidak akan begitu perlahan hanya boleh mengesan perubahan data pada peristiwa tertentu Masukkan pengesanan nilai kotor apabila dicetuskan, kira-kira seperti berikut:
vue: Rampasan data
vue.js sedang Menggunakan data rampasan digabungkan dengan model penerbit-pelanggan, Object.defineProperty() digunakan untuk merampas penetap dan getter bagi setiap sifat, menerbitkan mesej kepada pelanggan apabila data berubah dan mencetuskan panggilan balik pendengaran yang sepadan. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/definePropertydefineProperty
Kod itu betul-betul di bawah
Yang pertama sudah tentu Hello World
<div id="app"> {{ message }} </div> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' } })
<div ng-app="myApp" ng-controller="myCtrl"> {{message}} </div> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.message = "Hello world"; });
Sebagai perbandingan, vue menggunakan format data json untuk menulis dom dan data, dan gaya penulisan lebih serupa dengan js Format pengekodan data mudah difahami.
Ikatan data dua hala Vue
<div id="app"> <p>{{ message }}</p> <input v-model="message"> </div> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' } })
Ikatan data dua hala Angular
<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!"; });
vue walaupun Ia adalah rangka kerja ringan yang menyediakan banyak API, termasuk beberapa arahan mudah dan operasi atribut Secara amnya, arahan Vue menggunakan operator (v-), berbanding dengan arahan angularjs yang menggunakan (ng-). Antaranya, vue.js juga menyokong singkatan arahan:
(1) klik acara
<a v-on: click="fn"></a>
简写方式:<a @click="fn"></a>
(2)属性
<a v-bind: href="url"></a>
简写方式:<a :href="url"></a>
<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('') } });
相关推荐:《vue.js教程》
Atas ialah kandungan terperinci Apakah perbezaan antara angularjs dan vuejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!