什么是Vue.js辣垒?
前端開發(fā)的歷史
什么是“前端”望侈?
簡單來說,我們從瀏覽器里面打開的頁面就是所謂的“前端”勋桶,因為“前端”是相對于“后端”來說的脱衙,那么“后端”就是網(wǎng)頁的數(shù)據(jù)來源,比如服務(wù)器例驹、接口捐韩、數(shù)據(jù)庫等等。
通常的鹃锈,我們使用HTML荤胁、CSS、Javascript等技術(shù)來進行前端的開發(fā)工作仪召,所以要想學(xué)習(xí)本系列,必須掌握這幾門技術(shù)作為基礎(chǔ)松蒜。
過去的程序代碼是由服務(wù)器端語言根據(jù)數(shù)據(jù)生成的前端代碼扔茅,而隨著瀏覽器運行能力的提升,前端技術(shù)已經(jīng)不僅僅是作為界面顯示的輔助秸苗,而成為了獨立出來的一門新技術(shù)召娜。也就是將顯示部分完全交給前端來進行整合和渲染,而后端程序只負責(zé)數(shù)據(jù)的生成和接受惊楼。
這樣做的好處是讓人沉浸于某項實際工作玖瘸,而不需要多人同時進行配合工作,不但大大提升了工作效率檀咙,還讓工作本身變得更加有趣雅倒。
大名鼎鼎的JQuery
如果說起前端就不得不說其JQuery,在瀏覽器還很弱小的時候弧可,JQuery給了我們很多的方便
- 更多高級的選擇器
- 瀏覽器的兼容性
- 動畫處理
- 很小的尺寸和運行效率
- 大量的插件
可以說沒有JQuery也就沒有了我們現(xiàn)在百花齊放的框架體系蔑匣,很多的框架本身也是在JQuery的基礎(chǔ)上進行構(gòu)建的。
Angular和React
當然前端框架也有很多很流行的棕诵,在這里我就不多加舉例了裁良。不過原理和目的都是類似的,就是希望將前端技術(shù)分離出來校套。
說白了就一堆Javascript的程序員說:我們不學(xué)動態(tài)語言也能做網(wǎng)站
Vue.js橫空出世
Vue.js借鑒了很多前面兩個框架的理念价脾,尤其是Angular。但是Angular和React都犯了一個前端框架的大忌:
都使用了Javascript的變種而非純粹的Javascript語言
Angular使用了Typescript(一個更像C#的Javascript,一個爹出的:Anders Hejlsberg)笛匙,而React使用了JSX
這里就有一個問題侨把,只要不是Javascript犀变,其實都是無法在瀏覽器里面被直接支持的,前端技術(shù)又不允許我們使用動態(tài)生成代碼的技術(shù)座硕,那怎么辦呢弛作?這時候就需要對這些文件類型進行編譯操作,編譯成瀏覽器可以支持的Javascript格式华匾,并對代碼進行一些優(yōu)化映琳。
在Angular和React推出的時候,其實大家也是買賬的蜘拉,畢竟當時并沒有更好的辦法來解決Javascript過于弱小的問題萨西。但是最近新的ES6標準出來之后,很多新特性被加入到Javascript當中旭旭,讓這門語言有了新的生機谎脯。作為初學(xué)者,我覺得甚至沒有必要去學(xué)習(xí)Typescript和JSX持寄。
而Vue.js解決了這些問題源梭,它不需要學(xué)習(xí)額外的語言基礎(chǔ),只要掌握好Javascript就可以了(當然是ES6版本的)稍味。
(其實說了半天都是借口废麻,其實最重要的原因是Vue.js是中國人寫的,所以文檔更清晰模庐,下面附圖)
<div style=" display: flex;">
<div style="">
<img src="https://avatars1.githubusercontent.com/u/499550?v=4" height="100px" />
</div>
<div style="flex:1;padding-left:20px;padding-top:10px;">
Vue.js作者
Evan You
一個設(shè)計師出身但是現(xiàn)在轉(zhuǎn)向前端開發(fā)的牛人
</div>
</div>
JQuery為何風(fēng)光不再烛愧?
使用場景變化
JQuery作為老牌的前端框架,到今天為止還有大量的支持者掂碱,嚴格意義上來說它并沒有沒落怜姿,只是使用場景上更適合于輕量化開發(fā)。
比如你只會想要添加一行代碼就能夠得到一個模塊疼燥,那么你還是需要JQuery沧卢,而且大部分的JQuery插件的調(diào)用也非常的簡單。
但是現(xiàn)在已經(jīng)是2018年了醉者,在幾年之前搏恤,蘋果手機就帶著APP席卷了全球,而在手機上湃交,Web的體驗并不好:打開慢熟空,切換慢,顯示網(wǎng)頁字體還小搞莺。
一時之間所有的前端設(shè)計師們除了偶爾做做網(wǎng)站無所適從息罗,仿佛被這個世界拋棄。但是開發(fā)人員們并沒有放棄才沧,憑著在PC上開發(fā)的經(jīng)驗迈喉,一大批類似APP的移動端Web框架涌現(xiàn)出來绍刮,又隨著幾年的發(fā)展,大規(guī)模的前端頁面終于可以夠得著APP的尾巴了挨摸。這就是SPA(單頁面應(yīng)用程序)
什么是SPA
SPA(single page web application):單頁面網(wǎng)頁應(yīng)用程序孩革。當訪問的時候其實只有一個頁面被訪問,頁面內(nèi)部的功能和跳轉(zhuǎn)都是臨時加載進來的得运。與過去的多頁面程序不同膝蜈,多頁面程序是通過連接的跳轉(zhuǎn)并請求一個新的網(wǎng)址得到的。而SPA則是在同一個頁面里面進行跳轉(zhuǎn)熔掺,
其優(yōu)點如下:
- 大幅提升了加載速度
- 只需要通過接口獲取到數(shù)據(jù)即可
- 支持歷史和路由
- 可以制作出規(guī)模很大的Web App
缺點我就不贅述了饱搏,很多地方都在評論,總之SPA很值得使用置逻,并且現(xiàn)在的前端框架都是基于此概念進行開發(fā)的
Vue.js解決了什么問題推沸?
Vue.js作為一款非常優(yōu)秀的前端框架,幾乎滿足了我所有的需求券坞,如果你之前沒有用過鬓催,見到它你會有一種相見恨晚的感覺。
- 流行的MVVM架構(gòu)
- 雙向數(shù)據(jù)綁定
- 多文件的模板格式
- 組件系統(tǒng)
- 超小的體積
- 全球開發(fā)人員的支持和擴展
- 全中文保姆式文檔
Vue.js有哪些問題恨锚?
Vue.js的小型化也有一些問題宇驾,當然這其實也并不能說是劣勢,甚至可以說是某種優(yōu)勢
- 不包含太多的額外功能眠冈,無法直接進行界面級別的開發(fā)(當然第三方的UI庫又多又好)
- 沒有自己的IDE平臺飞苇,不像C#那樣整個生產(chǎn)鏈條都具備(各大編輯器也都有Vue.js的插件庫)
- 需要使用npm安裝菌瘫,并沒有安裝包(現(xiàn)在來看安裝包好像才是落后的蜗顽,Git其實比微軟的在線安裝程序更好用,全球通用)
- 需要編譯才能使用(貌似也沒有那個前端框架不需要使用Webpack了)
其實很多問題只是在VS IDE平臺下涉及比較少雨让,其他平臺其實早就在使用了雇盖,而且經(jīng)歷了多年早就成熟,使用起來也沒有原來那種別扭的感覺栖忠。
安裝和使用
說一點題外話
本身與學(xué)習(xí)無關(guān)崔挖,不感興趣可以直接跳到下一節(jié)
其實我個人還是很羨慕身在國外的程序設(shè)計人員,雖然軟件開發(fā)行業(yè)是這個世界上為數(shù)不多的信息相當對稱的行業(yè)庵寞,無論在國外還是在國內(nèi)都能夠獲取到最新的行業(yè)動態(tài)狸相。但是因為畢竟美國的開發(fā)環(huán)境很容易造就出開發(fā)牛人,而中國封閉的網(wǎng)絡(luò)環(huán)境和形式教育捐川,讓中國人很難走出國門脓鹃,看看外面的世界。
尤其是Windows平臺的普及古沥,甚至是盜版Windows的普及瘸右,讓越來越多的普通人都懂的計算機操作娇跟。這對于軟件的應(yīng)用來說是一件好事,也就是說中國擁有者世界上最大的計算機太颤、網(wǎng)絡(luò)苞俘、智能手機的用戶群體。但這并不意味著我們也擁有者相同多的開發(fā)人員龄章。
在中國吃谣,無論是什么行業(yè),無論是否真的必須使用Windows操作系統(tǒng)瓦堵,我們都在被動使用著基协,原因很明顯,我們用的QQ菇用、網(wǎng)銀U盾澜驮、瀏覽器等軟件往往只支持Windows操作系統(tǒng)。如果我們不使用Windows惋鸥,那么我們就被這個世界隔離了杂穷。也許你是一個天才,但是在一個全是瘋子的村子里卦绣,也許你自己才被看做瘋子耐量。
而Mac系統(tǒng)在中國,除了真的有一部分作為生產(chǎn)工具意外滤港,還有相當數(shù)量的Mac電腦被替換成了盜版的Windows系統(tǒng)廊蜒,他們要的只是那么一個外殼和發(fā)光的Apple Logo而已(現(xiàn)在已經(jīng)不發(fā)光了,我估計會影響很大的銷量)
Mac OS尚且如此溅漾,Linux在中國的應(yīng)用幾乎僅限于少數(shù)的開發(fā)人員了(因為服務(wù)器需要Linux)山叮,而Linux平臺對于開源精神的影響相當深遠。無論是哪個平臺添履,都在或多或少的收到Linux及其開源體系的強大影響屁倔。因此此次遷徙計劃的目的也是朝向Linux平臺進行轉(zhuǎn)移。
Linux開發(fā)人員崇尚“簡單就是美”的理念暮胧,使用的都是及其簡單的軟件來進行程序開發(fā)锐借,比如文本編輯器、手動構(gòu)建往衷、命令行工具等钞翔。這些工具不僅能夠在LInux平臺下面進行運行和使用,并且很容易移植到其他平臺當中席舍,而且相比于Mac和Windows系統(tǒng)當中過分強大的安裝包體系布轿,Linux那種“輸入一行命令就能用”的方式簡直可以說是完美飘言。
如果你憧憬在Linux平臺下開發(fā)婆硬,但是苦于沒有合適的教程和學(xué)習(xí)方法,就跟隨我這個老Windows程序員一起走向Linux的懷抱吧。
再次也呼吁更多在國外有開發(fā)經(jīng)驗脆栋、或者學(xué)習(xí)能力強的開發(fā)者能夠?qū)⒏嗉夹g(shù)帶給國內(nèi)的技術(shù)開發(fā)人員镣煮。
額外說一句埃跷,國內(nèi)本科計算機專業(yè)的程序員是受到嚴重誤導(dǎo)的一代金度,學(xué)習(xí)的都是過時的技術(shù),并且學(xué)習(xí)的方向也有嚴重偏差珊泳。如果你也是中國的計算機專業(yè)的畢業(yè)生鲁冯,或者某些軟件培訓(xùn)機構(gòu)的學(xué)生,也最好跟著我一起從坑里跳出來色查。不要一直做井底之蛙薯演。