看懂了這些在學習vue

做爲一名有追求的前端工程師,咱們無論學習一門語言仍是一個框架,要想把學好絕對不僅是學它的用法,前端

好比 vue 爲何它的語法會那麼簡單,就能實現那麼強大的功能?因此咱們在學習的過程當中必定要多學會vue

多問爲何,這樣才能把一個知識學的更加的透徹。編程

首先我在學vue以前先問你們一些問題,看看你們能不能知道!後端

1.爲何要學習vue?設計模式

2.vue是什麼?前端工程師

3.vue爲何這麼火?架構

4.什麼是漸進式框架?框架

5.什麼是mvvm? 底層是怎麼實現的?dom

……mvvm

這些問題是我學習vue以前問本身的問題,接下來就給你們來解釋解釋。

----------------------------------------------------------------------------------------------------------------
vue究竟是什麼?

簡單來講:一個mvvm框架(庫)

Vue.js是一款輕量級的以數據驅動的漸進式JavaScript 框架。
----------------------------------------------------------------------------------------------------------------
爲何要用vue?

1.組件化開發
2.雙向數據綁定

vue的優點:輕量級框架、簡單易學、雙向數據綁定、組件化、視圖、數據和結構的分離、虛擬DOM、運行速度快


vue是單頁面應用,使頁面局部刷新,不用每次跳轉頁面都要請求全部數據和dom,這樣大大加快了訪問速度和提高用戶體驗。並且他的第三方ui庫不少節省開發時間。
----------------------------------------------------------------------------------------------------------------
什麼是漸進式框架?

在我看來,漸進式表明的含義是:主張最少。
每一個框架都不可避免會有本身的一些特色,從而會對使用者有必定的要求,這些要求就是主張,主張有強有弱,它的強勢程度會影響在業務開發中的使用方式。
好比說,Angular,它兩個版本都是強主張的,若是你用它,必須接受如下東西:
- 必須使用它的模塊機制- 必須使用它的依賴注入- 必須使用它的特殊形式定義組件(這一點每一個視圖框架都有,難以免)

因此Angular是帶有比較強的排它性的,若是你的應用不是從頭開始,而是要不斷考慮是否跟其餘東西集成,這些主張會帶來一些困擾。

好比React,它也有必定程度的主張,它的主張主要是函數式編程的理念,好比說,你須要知道什麼是反作用,什麼是純函數,如何隔離反作用。它的侵入性看似沒有Angular那麼強,主要由於它是軟性侵入。

Vue可能有些方面是不如React,不如Angular,但它是漸進的,沒有強主張,你能夠在原有大系統的上面,把一兩個組件改用它實現,當jQuery用;也能夠整個用它全家桶開發,當Angular用;還能夠用它的視圖,搭配你本身設計的整個下層用。你能夠在底層數據邏輯的地方用OO和設計模式的那套理念,也能夠函數式,均可以,它只是個輕量視圖而已,只作了本身該作的事,沒有作不應作的事,僅此而已。
漸進式的含義,個人理解是:沒有多作職責以外的事。

----------------------------------------------------------------------------------------------------------------
什麼是MVVM?

model:數據和業務邏輯
view:負責界面和顯示
viewModel:界面的邏輯和模型的封裝

MVVM 是Model-View-ViewModel 的縮寫,它是一種基於前端開發的架構模式,其核心是提供對View 和 ViewModel 的雙向數據綁定,這使得ViewModel 的狀態改變能夠自動傳遞給 View,即所謂的數據雙向綁定。
Vue.js 就是一個提供了 MVVM 風格的雙向數據綁定的 Javascript 庫,專一於View 層。它的核心是 MVVM 中的 VM,也就是 ViewModel。 ViewModel負責鏈接 View 和 Model,保證視圖和數據的一致性。

爲了你們理解可以更好理解mvvm,附加幾張圖,了圖就能夠更好的理解mvvm的工做原理了。

\

----------------------------------------------------------------------------------------------------------------
Vue.js數據驅動的原理?

Vue.js數據驅動的原理在於View層的視圖發生改變時,Vue會經過DOM Listeners來監聽並改變Model層的數據。反之,當Model層的數據發生改變時,也會經過Data Bingings來監聽並改變View層的展現。從而實現雙向數據綁定的功能。
例如:jQuery經過操做DOM來改變頁面的顯示,而Vue經過操做數據來實現頁面的更新與展現。這樣咱們就能很直觀的理解數據驅動的意思了。

----------------------------------------------------------------------------------------------------------------
爲何vue會這麼火?

關於這個問題,網上說法不少,我本身認爲主要仍是前些年大前端變革太快,而最近一年開始Vue.js+Webpack這個組合開始逐漸穩定下來了,並且已經有了不少中文資料。

對比它的競爭對手AngularJS,新舊版本項目沒法平滑升級,變革太大讓用戶感受不安穩。

而React自己主流推薦用的是JSX,須要額外學習一門語法(什麼?學Vue.js還要學ECMAScript6?如今ECMAScript6是趨勢,並非由於Vue.js纔要學的),而且React自己用的是render寫法編寫模版代碼,這讓不少用習慣了Smarty等後端模版引擎得人來使用感受很不適應,如今看來React自己在中國一些論壇社區的火爆程度仍是沒有Vue.js高。

固然也並非說除了Vue.js之外其餘框架都不好。像知乎新版也是用React開發的,他仍是有各自優秀的地方你們能夠深刻學習以後作出本身的判斷。

相關文章
相關標籤/搜索