久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

angularjs和vuejs的區(qū)別是什么

區(qū)別:1、angularjs是通過“臟值檢測(cè)”的方式比對(duì)數(shù)據(jù)是否有變更,實(shí)現(xiàn)雙向數(shù)據(jù)綁定;而vue是采用“數(shù)據(jù)劫持”結(jié)合“發(fā)布者-訂閱者模式”的方式實(shí)現(xiàn)雙向數(shù)據(jù)綁定。2、vue指令使用“v-”操作符,angularjs的指令使用“ng-”。

angularjs和vuejs的區(qū)別是什么

本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6&&Angular9版,DELL G3電腦。

使用Angularjs和Vue.js對(duì)比

之前項(xiàng)目都是使用Angularjs,(注明此處主要講Angularjs 1)在初步使用Vue.js后做一個(gè)簡(jiǎn)單的對(duì)比筆記。
首先從理論上簡(jiǎn)單說一下各自的特點(diǎn),之后再用幾個(gè)小的例子加以說明。

Angular

  • 1,MVVM(Model)(View)(View-model)
  • 2,模塊化(Module)控制器(Contoller)依賴注入:
  • 3,雙向數(shù)據(jù)綁定:界面的操作能實(shí)時(shí)反映到數(shù)據(jù),數(shù)據(jù)的變更能實(shí)時(shí)展現(xiàn)到界面。
  • 4,指令(ng-click ng-bind ng-model ng-href ng-src ng-if/ng-show…)
  • 5,服務(wù)Service($compile $filter $interval $timeout $http…)
  • 6,路由(ng-Route原生路由),ui-router(路由組件)
  • 7,Ajax封裝($http)

其中雙向數(shù)據(jù)綁定的實(shí)現(xiàn)使用了$scope變量的臟值檢測(cè),使用$scope.$watch(視圖到模型),$scope.$apply(模型到視圖)檢測(cè),內(nèi)部調(diào)用的都是digest,當(dāng)然也可以直接調(diào)用$scope.$digest進(jìn)行臟檢查。值得注意的是當(dāng)數(shù)據(jù)變化十分頻繁時(shí),臟檢測(cè)對(duì)瀏覽器性能的消耗將會(huì)很大,官方注明的最大檢測(cè)臟值為2000個(gè)數(shù)據(jù)。

Vue

vue.js官網(wǎng):是一套構(gòu)建用戶界面的 漸進(jìn)式框架。與其他重量級(jí)框架不同的是,Vue 采用自底向上增量開發(fā)的設(shè)計(jì)。Vue 的核心庫只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫或已有項(xiàng)目整合。另一方面,Vue 完全有能力驅(qū)動(dòng)采用單文件組件Vue 生態(tài)系統(tǒng)支持的庫開發(fā)的復(fù)雜單頁應(yīng)用。

Vue.js 的目標(biāo)是通過盡可能簡(jiǎn)單的 API 實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定組合的視圖組件

  • (1)模塊化,目前最熱的方式是在項(xiàng)目中直接使用ES6的模塊化,結(jié)合Webpack進(jìn)行項(xiàng)目打包
  • (2)組件化,創(chuàng)造單個(gè)component后綴為.vue的文件,包含template(html代碼),script(es6代碼),style(css樣式)
  • (3)雙向數(shù)據(jù)綁定:界面的操作能實(shí)時(shí)反映到數(shù)據(jù),數(shù)據(jù)的變更能實(shí)時(shí)展現(xiàn)到界面。
  • (4)指令(v-html v-bind v-model v-if/v-show…)
  • (5)路由(vue-router)
  • (6)vuex 數(shù)據(jù)共享
  • (7)Ajax插件(vue-resource,axios)

vue非常小巧,壓縮后min源碼為72.9kb,gzip壓縮后只有25.11kb,想比Angular為144kb,可以自駕搭配使用需要的庫插件,類似路由插件(Vue-router),Ajax插件(vue-resource,axios)等

Vue與 Angular 雙向數(shù)據(jù)綁定原理###

angular.js臟值檢查

angular.js 是通過臟值檢測(cè)的方式比對(duì)數(shù)據(jù)是否有變更,來決定是否更新視圖,最簡(jiǎn)單的方式就是通過 setInterval() 定時(shí)輪詢檢測(cè)數(shù)據(jù)變動(dòng),當(dāng)然Google不會(huì)這么low,angular只有在指定的事件觸發(fā)時(shí)進(jìn)入臟值檢測(cè),大致如下:

  • DOM事件,譬如用戶輸入文本,點(diǎn)擊按鈕等。( ng-click )
  • XHR響應(yīng)事件 ( $http )
  • 瀏覽器Location變更事件 ( $location )
  • Timer事件( $timeout , $interval )
  • 執(zhí)行 $digest() 或 $apply()

vue數(shù)據(jù)劫持

vue.js 則是采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個(gè)屬性的setter,getter,在數(shù)據(jù)變動(dòng)時(shí)發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/definePropertydefineProperty

下面直接上代碼

首先當(dāng)然是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采用了json的數(shù)據(jù)格式進(jìn)行dom和data的編寫,編寫風(fēng)格更加靠進(jìn)js的數(shù)據(jù)編碼格式,通俗易懂。

vue的雙向數(shù)據(jù)綁定

<div id="app">   <p>{{ message }}</p>   <input v-model="message"> </div>  new Vue({   el: '#app',   data: {     message: 'Hello Vue.js!'   } })

Angular的雙向數(shù)據(jù)綁定

<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雖然是一個(gè)輕量級(jí)的框架,提供的API確非常多,包括一些便捷的指令和屬性操作,一般vue是指令使用(v-)操作符,相比angularjs指令使用(ng-)。其中vue.js還支持指令的簡(jiǎn)寫方式:

  • (1)事件click

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

    簡(jiǎn)寫方式:
    <a @click="fn"></a>

  • (2)屬性

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

    簡(jiǎn)寫方式:
    <a :href="url"></a>

vue.渲染列表

<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' }     ]   } })

Angularjs渲染列表

<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' }     ] });

vue的循環(huán)

<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: '#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('')     } });

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
蜜桃视频一区二区| 国产va免费精品观看精品视频| 亚洲精品日韩久久| 视频一区视频二区在线观看| 福利一区二区免费视频| 日韩成人在线看| 老司机精品久久| 欧美日韩国产精品一区二区亚洲| 黄色国产精品| 精品色999| 国产粉嫩在线观看| 成人一区而且| 黄色成人精品网站| 蜜桃久久久久久| 国产区精品区| 久久香蕉网站| 成人羞羞在线观看网站| 亚洲一区成人| 欧美亚洲网站| 日韩欧美二区| 久久成人国产| 日韩avvvv在线播放| 国产精品二区不卡| 婷婷丁香综合| 日韩综合一区| 久久精品国产一区二区| 成人啊v在线| 久久亚洲图片| 中文字幕免费一区二区| 久久国产三级| 国产精品magnet| 欧美精品日日操| 日韩欧美1区| 亚洲91在线| 日韩中文字幕| 高清不卡亚洲| 日韩精品永久网址| 视频一区二区国产| 91精品一区| 久久久久久美女精品| 亚洲国产成人精品女人| 日韩精品福利一区二区三区| 日韩综合小视频| 久久久久欧美精品| 乱人伦精品视频在线观看| 国产高清视频一区二区| 精品国产精品久久一区免费式| 久久不射中文字幕| 国产精品mm| 99在线|亚洲一区二区| 欧美亚洲一级| 久久久久免费av| 粉嫩av一区二区三区四区五区 | 风间由美中文字幕在线看视频国产欧美| 欧美成人高清| 欧美13videosex性极品| 久久国产日韩欧美精品| 亚洲精品在线二区| 一区二区自拍| 伊人影院久久| 激情婷婷欧美| 999国产精品| 在线一区视频观看| 亚洲黄色中文字幕| 欧美国产专区| 男女精品网站| 日韩精品久久理论片| 成人小电影网站| 国产乱子精品一区二区在线观看| 欧美精选一区二区三区| 欧美黑人做爰爽爽爽| 国精品一区二区| 国产中文字幕一区二区三区| 欧美aa在线观看| 国产精品久久久久久妇女| 国产亚洲一级| 欧美日韩精品一本二本三本 | 视频一区二区三区入口| 视频在线观看国产精品| 成人午夜毛片| 日韩一区二区三区精品视频第3页| 久久久精品国产**网站| 日韩av中文字幕一区二区| 水蜜桃久久夜色精品一区的特点| 麻豆精品一区二区综合av| 国产精品激情| 国产精品成久久久久| 欧美日韩精品一本二本三本| 日韩av中文在线观看| 国产不卡精品在线| 在线视频免费在线观看一区二区| 日本不卡中文字幕| 国产第一亚洲| 五月婷婷六月综合| 日韩精品视频中文字幕| 精品国产乱码| 国产精品美女久久久| 国产精品videossex| 91成人网在线观看| 久久精品天堂| 色综合视频一区二区三区日韩| 风间由美中文字幕在线看视频国产欧美| 一本一道久久a久久精品蜜桃| 国产精品日本一区二区不卡视频| 亚洲精品一二三区区别| 美女精品一区二区| 亚洲人www| 久久激情网站| 91欧美日韩在线| 亚洲欧美日韩国产一区二区| 黄色精品视频| 亚洲精品观看| 国产一区二区高清| 99久久99久久精品国产片果冰| 国产精品地址| 欧美日韩xxxx| 麻豆精品91| 国产精品美女| 久久亚洲欧洲| 欧美日韩尤物久久| 成人一二三区| 精品一区二区三区亚洲| 国产亚洲在线观看| 久久精品国产一区二区| 国产精品1区| 欧美午夜网站| 日韩国产欧美在线播放| 爽爽淫人综合网网站| 日韩精品一二三四| 红桃视频国产一区| av不卡在线看| 亚洲欧洲一区二区天堂久久| 亚洲手机视频| 国产精品91一区二区三区| 91精品1区| 日韩动漫一区| 91久久中文| 亚洲精品成a人ⅴ香蕉片| 欧美一区自拍| 伊人网在线播放| 蜜臀av在线播放一区二区三区| 日本不卡视频在线观看| 成人在线丰满少妇av| 男人天堂欧美日韩| 国产欧美一区二区三区精品酒店 | 色综合狠狠操| 99riav国产精品| 国产精品亚洲欧美日韩一区在线| 久久精品国产一区二区| 久久狠狠久久| 一区二区三区午夜视频| 国产欧美一区二区三区精品观看| 日韩av福利| 日本中文字幕不卡| 亚洲电影在线| 久久一区亚洲| 久热re这里精品视频在线6| 国产一区精品福利| 欧美另类中文字幕| 一本综合精品| 欧美激情网址| 日韩黄色大片| 欧美日韩一二| 国产精品久久久久久久免费软件| 国内精品麻豆美女在线播放视频| 在线精品观看| 欧美aaaaaa午夜精品| 欧美中文一区| 日韩极品在线观看| 日韩精品视频一区二区三区| 国产一区调教| 日本aⅴ精品一区二区三区| 婷婷成人基地| 婷婷激情久久| 国产成人久久精品麻豆二区| 亚洲精品国产精品粉嫩| 亚洲精品一二三区区别| 日韩国产一区| 日韩综合在线| 国产精品magnet| 国产精区一区二区| 午夜国产一区二区| 日韩欧美少妇| 电影91久久久| 免费日韩一区二区三区| 青青国产精品| 日韩成人午夜精品| 五月国产精品| 欧美欧美黄在线二区| 日韩av在线免费观看不卡| 欧美日韩一二三四| 91精品韩国| 免费看av不卡| av在线资源| 久久久精品五月天| 亚洲精品在线观看91| 亚洲91精品| 欧美午夜精彩| 亚洲国产一区二区在线观看| 亚洲欧美日本日韩|