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

首頁 > 編程 > JavaScript > 正文

深入理解JavaScript的React框架的!原理

2019-11-02 14:15:49
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了JavaScript的React框架的原理,包括其與AngularJS的比較,需要的朋友可以參考下

  如果你在兩個月前問我對React的看法,我很可能這樣說:

  我的模板在哪里?javascript中的HTML在做些什么瘋狂的事情?JSX開起來非常奇怪!快向它開火,消滅它吧!

  那是因為我沒有理解它.

  我發誓,React 無疑是在正確的軌道上, 請聽我道來.

  Good old MVC

  在一個交互式應用程序一切罪惡的根源是管理狀態。

  “傳統”的方式是MVC架構,或者一些變體。

  MVC提出你的模型是檢驗真理的唯一來源 - 所有的狀態住在那里。

  視圖是源自模型,并且必須保持同步。

  當模式的轉變,所以沒有查看。

  最后,用戶交互是由控制器,它更新模型抓獲。

  到目前為止,一切都很好。

201572112250707.png (500×550)

  模型發生變化時就要對視圖進行渲染

  這看起來相當簡單。首先,我們需要描述視圖——它是如何將模型狀態轉換到DOM上去的。然后,用戶一發生了什么操作我們就要對模型進行更新,并且要對整個頁面進行重新渲染... 對不? 沒這么快哦. 不幸的事,這其實并沒有這么直接,因為如下兩個原因:

  DOM實際上有某種狀態,就比如一個文本輸入框中的內容. 如果你完全作廢你的DOM來進行重新渲染,這樣的內容會丟失掉.

  DOM 操作 (像刪除和插入節點) 真的慢. 頻繁的渲染會導致嚴重的性能問題.

  那么我們如果在避免這些問題的前提下保持模型和視圖同步呢?

  數據綁定

  過去三年,被引進用來解決這個問題最常用多框架功能就是數據綁定.

  數據綁定能自動地保持模型和視圖的同步. 通常在JavaScript中就代表了對象和DOM.

  它會通過讓你聲明應用中各個塊之間的依賴來對這一同步進行打包。狀態的變化會在整個應用程序中蔓延,然后所有的依賴塊都會被自動更新.

  讓我們來看看一些有名的框架中它實際是如何運作的吧.

  Knockout

  Knockout 主張使用的是 MVVM (模型-視圖-視圖模型) 方法,并且幫你實現了“視圖”的部分:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 // View (a template) <p>First name: <input data-bind="value: firstName" /></p> <p>Last name: <input data-bind="value: lastName" /></p> <h2>Hello, <span data-bind="text: fullName"> </span>!</h2> // ViewModel (diplay data... and logic?) var ViewModel = function(first, last) { this.firstName = ko.observable(first); this.lastName = ko.observable(last); this.fullName = ko.pureComputed(function() { // Knockout tracks dependencies automatically. It knows that fullName depends on firstName and lastName, because these get called when evaluating fullName. return this.firstName() + " " + this.lastName(); }, this); };
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚远县| 黎平县| 乐东| 鄂温| 崇阳县| 林口县| 漠河县| 阳江市| 凤凰县| 深水埗区| 大同市| 紫云| 田阳县| 吉水县| 邳州市| 靖边县| 乐山市| 望城县| 昌邑市| 景德镇市| 翁牛特旗| 绍兴市| 广平县| 博乐市| 平顶山市| 三台县| 临汾市| 田林县| 景泰县| 思茅市| 江孜县| 玉山县| 樟树市| 密云县| 大厂| 罗源县| 福建省| 时尚| 鄂尔多斯市| 昌乐县| 井陉县|