国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

前端框架學習總結之Angular、React與Vue的比較詳解

2024-05-06 15:09:49
字體:
來源:轉載
供稿:網友

近幾年前端的技術發展很快,細分下來,主要可以分成四個方面:

      1.開發語言技術,主要是ES6&7,coffeescript,typescript等;

      2.開發框架,如Angular,React,Vue.js,Angular2等;

      3.開發工具的豐富和前端工程化,像Grunt,Gulp,Webpack,npm,eslint,mocha這些技術;

      4.前端開發范圍的擴展,如服務端的nodejs,express,koa,meteor,GraphQL;移動端和跨平臺的PhoneGap,ionic,ReactNative,Weex;計算機圖形學和3維建模領域的WebGL(three.js等);可視化與數據分析領域的d3.js等;包括瀏覽器不斷開放的更多新特性和接口比如svg,canvas,藍牙,電池,本地存儲,service worker,Houdini等新的API能力,以及像WASM這樣的底層優化技術;

就開發框架這塊,Angular(1&2),React,Vue目前占據著主流地位而且會相持比較長的一段時間,所以這里對比一下這三門技術,以便之后的技術選型。

一、數據流

數據綁定

Angular 使用雙向綁定即:界面的操作能實時反映到數據,數據的變更能實時展現到界面。

實現原理:

$scope變量中使用臟值檢查來實現。像ember.js是基于setter,getter的觀測機制,

$scope.$watch函數,監視一個變量的變化。函數有三參數,”要觀察什么”,”在變化時要發生什么”,以及你要監視的是一個變量還是一個對象。

使用ng-model時,你可以使用雙向數據綁定。

使用$scope.$watch(視圖到模型)以及$scope.$apply(模型到視圖),還有$scope.$digest

調用$scope.$watch時只為它傳遞了一個參數,無論作用域中的什么東西發生了變化,這個函數都會被調用。在ng-model中,這個函數被用來檢查模型和視圖有沒有同步,如果沒有同步,它將會使用新值來更新模型數據。

雙向綁定的三個重要方法:

$scope.$apply()$scope.$digest()$scope.$watch()

在AngularJS雙向綁定中,有2個很重要的概念叫做dirty check,digest loop,dirty check(臟檢測)是用來檢查綁定的scope中的對象的狀態的,例如,在js里創建了一個對象,并且把這個對象綁定在scope下,這樣這個對象就處于digest loop中,loop通過遍歷這些對象來發現他們是否改變,如果改變就會調用相應的處理方法來實現雙向綁定

Vue 也支持雙向綁定,默認為單向綁定,數據從父組件單向傳給子組件。在大型應用中使用單向綁定讓數據流易于理解。

臟檢測的利弊

和ember.js等技術的getter/setter觀測機制相比(優):

getter/setter當每次對DOM產生變更,它都要修改DOM樹的結構,性能影響大,Angular會把批量操作延時到一次更新,性能相對較好。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宁城县| 西吉县| 红安县| 咸丰县| 白银市| 吴桥县| 太仓市| 文安县| 金门县| 平武县| 宁强县| 通海县| 兴宁市| 博爱县| 桐乡市| 扎赉特旗| 筠连县| 昌邑市| 夏津县| 绥棱县| 罗平县| 郓城县| 崇左市| 密山市| 确山县| 渭南市| 轮台县| 平顺县| 沁水县| 海阳市| 上栗县| 繁峙县| 崇礼县| 南木林县| 阿克苏市| 南靖县| 南靖县| 武城县| 托克托县| 遂昌县| 乌兰浩特市|