Web前端開發(fā)技術(shù)主要包括三個(gè)要素:HTML、CSS和JavaScript!HTML甚至不是一門語言,僅僅是簡單的標(biāo)記語言!CSS只是無類型的樣式修飾語言。當(dāng)然可以勉強(qiáng)算作弱類型語言。Javascript的基礎(chǔ)部分相對(duì)來說不難,入手還算快。
掌握技術(shù)
1. 掌握各種修圖軟件,如PSFireworksAI,不要求專業(yè)設(shè)計(jì)師水平,但要會(huì)用會(huì)改,今天是一專多能的時(shí)代,光會(huì)編程討不好飯碗的;
2. 精通JavaScript、jQuery、vue、 react、angular等頁面效果框架,這是前端工程師的最核心技能,是專做頁面效果的技術(shù)。其實(shí)精通了JavaScript,后端編程語言,如.NET、PHP、Ruby都很容易掌握,因?yàn)槠湓硎且粯拥模?/p>
3. 精通一二種模板語言,并能修改,如織夢或wordpress的模板;
4. 掌握thinkphp與zend框架,能修改此類開源源碼;
5. 掌握html5與sencha,這是做手機(jī)等移動(dòng)設(shè)備的頁面前端技術(shù);
6. 掌握一二種后端編程語言,如PHP、.NET、JAVA,能讀懂后端源碼,實(shí)際上其原理跟JS差不多;
7. 掌握node.js,熟悉各種自動(dòng)化部署工具;
8. 前端是重視用戶體驗(yàn)的,不是靠美工給的頁面 做出來就行了,那樣不是一個(gè)合格的前端。
其中vue、 react、angular,等框架是走在現(xiàn)在流行的框架的。
Vue.js 很好,但相比 Angular 或 React 更好嗎?
Vue.js 是一個(gè)用來構(gòu)建網(wǎng)頁界面的 JavaScript 庫。同其它的一些工具結(jié)合在一起,它也可以成為一個(gè)新“框架”。你會(huì)了解到 Vue.js 是頂級(jí)的 JavaScript 框架之一,它在許多場景中可以被用來替換 Angular 和 React。這就引出了本文要討論的話題 “Vue.js 是不錯(cuò),但能比 Angular 或者 React 更好么?”
Vue.js 為什么比較特別?
· Vue 最大優(yōu)勢就是它比較新穎,沒歷史包袱,它吸取了 React 和 Angular 的教訓(xùn)
· Vue輕量級(jí),易上手,易學(xué)習(xí)
· Vue更加靈活,(比起 Angular)更少專制
· 組件(Component)是 Vue最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼
Angularjs vs Vue.js
Vue.js 更加靈活,(比起 Angular)更少專制,它能然你按照自己想要的方式構(gòu)建應(yīng)用,而非凡事非得 Angular 如此如此。它只不過是一層界面而已,因此你可以拿它作為頁面中一個(gè)輕量的功能來使用
vue的雙向邦定是基于ES5 中的 getter/setters來實(shí)現(xiàn)的,它的每個(gè)屬性都有兩個(gè)相對(duì)應(yīng)的get和set方法,于是去網(wǎng)上查了查Angular.js雙向綁定的實(shí)現(xiàn)原理,結(jié)果發(fā)現(xiàn)與vue完全不同,Angular是用的數(shù)據(jù)臟檢測,當(dāng)Model發(fā)生變化,會(huì)檢測所有視圖是否綁定了相關(guān)數(shù)據(jù),再更改視圖。而Vue使用的發(fā)布訂閱模式,是點(diǎn)對(duì)點(diǎn)的綁定數(shù)據(jù)。
它的每個(gè)屬性都有兩個(gè)相對(duì)應(yīng)的get和set方法,我覺的這是多此一舉的,于是去網(wǎng)上查了查Vue雙向綁定的實(shí)現(xiàn)原理,才發(fā)現(xiàn)它和Angular.js雙向綁定的實(shí)現(xiàn)原理完全不同,Angular是用的數(shù)據(jù)臟檢測,當(dāng)Model發(fā)生變化,會(huì)檢測所有視圖是否綁定了相關(guān)數(shù)據(jù),再更改視圖。而Vue使用的發(fā)布訂閱模式,是點(diǎn)對(duì)點(diǎn)的綁定數(shù)據(jù)。vue則不需要。因此,vue在性能上更高效,但是代價(jià)是對(duì)于ie8以下ie8的瀏覽器無法支持。
臟值檢查: angular.js 是通過臟值檢測的方式比對(duì)數(shù)據(jù)是否有變更,來決定是否更新視圖,最簡單的方式就是通過 setInterval() 定時(shí)輪詢檢測數(shù)據(jù)變動(dòng),當(dāng)然Google不會(huì)這么low,angular只有在指定的事件觸發(fā)時(shí)進(jìn)入臟值檢測,大致如下:
DOM事件,譬如用戶輸入文本,點(diǎn)擊按鈕等。( ng-click )
XHR響應(yīng)事件 ( http )
瀏覽器Location變更事件 (location )
Timer事件(timeout , interval )
執(zhí)行 digest() 或 apply()
數(shù)據(jù)劫持: vue.js 則是采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個(gè)屬性的setter,getter,在數(shù)據(jù)變動(dòng)時(shí)發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。
Angularjs 擁有許多工具,而如此多的復(fù)雜語法有時(shí)也會(huì)讓你感到迷惑。另外一方面,Vue.js 比起 Angular 要簡單的多,甚至于要更好。
Reactjs vs Vue.js
React 和 Vue.js 擁有一些類似的功能特性,如:
1) 使用了一個(gè)虛擬 DOM
2) 提供了響應(yīng)式的,并且可組合式的視圖組件。
3) 保持對(duì)核心庫的專注, 而像路由和全局狀態(tài)管理這樣的關(guān)注點(diǎn)則交給附帶的庫來處理
寫一個(gè)Hello World
React 這樣做:
Vue這樣做:
這個(gè)很簡單。使用一堆 script 標(biāo)簽就可以讓代碼跑起來。從這里可以看出,利用 Vue 的功能特性的好處就是無需學(xué)習(xí)任何新的技術(shù)。