Vue學習「心酸」歷程(連載第一篇)
不過沒辦法,誰讓我已深深入坑了呢,抱著生是前端人死是前端鬼的態度,我就來學學最近比較火爆的Vue吧,據說現在好多面試公司都會問你會不會Vue,為什麼為什麼?很厲害嗎?
一、Vue是什麼?
官方解釋說,Vue是一套構建用戶界面的漸進式框架,與其他重量級框架不同的是,Vue 採用自底向上增量開發的設計。Vue 的核心庫只關注視圖層,它不僅易於上手,還便於與第三方庫或既有項目整合。漸進式框架?來來來,你出來,我保證不打死你,對於小白來講,瞬間懵逼了好嘛!!你就不能說的簡單易懂點嗎?好吧,我承認,搞開發比較愛裝,裝什麼?不說了哈哈
漸進式框架,「漸進」兩個字,畫下重點考試要考。簡單理解就是框架是分層設計的,每層都有不同功能,每層都可選,根據不同的需求選擇不同的接入方案,相對其他框架,使用比較靈活。不用必須使用它的模塊機制,不用必須使用它的依賴注入等等,怎麼樣,是不是聽著就很爽。
用視頻里的話講就是,你需要用到那一塊就用就行了,不需要全部都用上。
附上一張漸進式框架的圖,大家欣賞下。

二、Vue的核心
1、響應的數據綁定
響應的數據綁定就是當數據發生改變的時候自動更新視圖。這是利用 Object.definedProperty 中的 setter/getter 代理數據來實現監控的。當它發現數據發生改變的時候,就會去更新視圖啦。最初看到 definedProperty、setter/getter 的時候,就被它給帶跑了,什麼鬼東西,不過在經歷了一通查找後(包括跑他們社區上提問過),我想我現在是搞懂了,或者你們比我懂的多,不用查資料就能明白,那我會嫉妒你!但如果有哪位兄弟姐妹們對這些名詞不太明白的話,你可以問我,我抽時間就回復,就先不在這裡做過多的解釋了。不過我可以告訴大家的是,它不兼容ie8哦,也就是說Vue也不兼容ie8。2、組合的視圖組鍵
這裡呢就是一個概念性的東西,知道並且記住就ok啦。
ui頁面映射為組建樹,劃分組建可維護、可重用、可測試。就像老師說的,好想堆積木一樣,一個一個往上放。我上個圖理解下:
虛擬DOM這個概念簡單易懂,就和它的字面意思一樣,利用內存生成一個與真實DOM的結構數據一模一樣的DOM,這個內存中生成的DOM就叫做虛擬DOM。
那麼虛擬DOM有什麼用么,這個就要先從真實DOM開始說起啦。我們都只到js的運行速度是非常快的,但是執行中又不可避免的會操作很多頁面上的DOM,這樣就造成了運行速度的減慢。時長在更新數據以後,要重新渲染,包括沒有數據改變的地方,造成了很大程度上的資源浪費。
這個時候,虛擬DOM出現了,當數據發生改變的時候,它能夠通過對比數據,準確的找到數據發生改變的地方,並且針對這個地方進行渲染,以很小的代價完成了DOM操作。
來,我可恥的盜用一下視頻里的圖:


所謂MVVM模式,就是M(Model數據模型)+V(View視圖模版)+VM(View-Model視圖模型),這個理解起來很簡單,M層就是我們拿到的數據和業務邏輯,V層就是用於數據展示的,VM呢就是處理M和V之間關係用的,所有的臟活累活都是它來乾的。視圖影響數據,數據又影響著視圖,這就是所謂的雙向數據綁定。
再上一張經典的MVVM模式的圖
下面開始植入代碼:


聲明式:

推薦閱讀:
※Vue-router如何切換不同參數的相同路由?
※vue.js實例項目有木有?
※src屬性綁定出錯?
※Angular2 相比 Vue 有什麼優勢?
※Vue.js 怎麼讓 B 組件「繼承」 A 組件的 props 屬性?



