我想告訴你,我開始享受使用Vue.js和進行前端開發的故事。這不該該被理解爲一篇關於爲何Vue.js可能比React,Angular或任何你正在考慮的其餘Web框架更好的文章。Vuejs是使人驚歎的,但咱們生活在一個做爲前端開發人員一樣使人驚歎的時代。前端
若是你幾年前和我交談過,我會把本身定位爲一個後端開發人員,掌握服務器和數據庫管理。面向對象的語言,java和c #,我想找到一種本身須要交付程序時使用的惟一的開發語言,我逐漸瞭解到更多關於.NET和SQL服務器的堆棧技術。當時我有這樣一個概念,前端開發者只是使用右腦的附庸風雅的人,並非「真正的」編程。vue
可是,在我最後一次求職,選擇不多。特別是工做面試,我看到了本身是如何失敗的。那次失敗很是使人沮喪,但我從中吸收了很多教訓。我得到了一個職位,利用了我在SharePoint的經驗。我在SharePoint的經驗並不特別:用GUI、工做流等設計頁面這個不是我理想中的工做,而是爲了生活不得不作的工做。java
當我剛開始的時候,我接觸過像我過去作過的任何相似的項目。我依靠GUI設計用戶界面。幸運的是,使用數據庫的經驗使我可以以規範化的方式設計列表,但彷佛缺少用戶界面方面的功能。在SharePoint設計器中,即便修改了底層ASP,某些效果也很難實現。node
我和一個很棒的開發人員進行了討論,這真的觸動了我,因而我開始了進入前端框架的旅程。她說:「你知道…SharePoint支持REST服務。」啊,是的!我能夠在SharePoint上使用Ajax,並根據響應狀況創建個人HTML。這將是超級有趣的!程序員
咱們的第一次迭代的一個特定的應用**xmlhttprequests,**經過JavaScript函數構建HTML。這種方法的鏈接如此之多以致於咱們的函數和字符串變得愈來愈難維護。因此,我想知道這個問題是否有一個更好的通用的解決方案。web
固然有!歡迎閱讀「Why you should use framework X」的視頻和博客。在作了教程和觀看關於這個主題的辯論以後,我拒絕使用框架。畢竟,使用一個框架意味着每一個人都必須變得聰明起來。然而,研究框架的過程當中,我碰到Handlebars,模板引擎使用的Ember。面試
因此,咱們作了任何明智的團隊都會作的事。咱們重寫了項目使用該模板引擎。除了顯式調用編譯函數以外,這是一次不錯的體驗。最初的渲染徹底沒有問題。不過,咱們須要添加在項目列表中摺疊/展開某些項的能力。個人這個問題的第一種方法是給個人對象設置一個「visible」的屬性,當屬性的值發生了變化那麼就從新編譯模版。這意味着數百個元素必須根據變化從新渲染。咱們利用jQuery來應用處理程序,它能夠基於某些選擇器顯示/隱藏元素。vue-router
我以爲這很混亂。最終產品是功能性的,可是我能在一個月內完成代碼並維護它嗎?可能須要一年?若是不費力氣的話。請容許我藉此機會說,可維護的代碼寫了大量使用jQuery和Handlebars。在這一點上,我沒有能力把它搞到位。vuex
因此,我就想回去研究一下可用的框架。有這麼多好的框架可選,但咱們有一個獨特的環境。咱們不能使用node。沒有NPM,沒有工具被大量使用在每個框架。咱們得出的結論是,在瀏覽器中運行Babel也會下降性能。考慮到這些條件,React、Ember和Angular2 +是不可行的選項。數據庫
咱們沒有認真考慮AngularJS(1)。我已經用它實現了另外一個項目,但它已不被官方支持了,而且vue.js剛剛發佈了V2版本和一個清晰的在瀏覽器使用的路徑。它會繼續受到歡迎,而且有可用的工具。因此,若是咱們不失時機的使用它,包括一個它提供的工具時,咱們也就決定支持它了。
許多我所給的緣由能夠歸因於Vue的替代品。
模板
最初使我對vue.js感興趣的是模板。使用一些花括號,我能夠根據JavaScript訪問的變量將值插入到提交內容中。經過模板的使用等於提供了一個路徑,Vue.js DOM和組件模板更容易被使用。另外,沒有太關注在IE9 +使用vue.js,而IE不支持模板。
響應性
事實上,我能夠對咱們的模型進行更改,它會自動更新頁面上的內容,這也是爲何讓我以爲angular.js好用的緣由。相似的原來「ng-model」模型,vue.js提供了一個「V」的指令能夠很容易的把輸入內容顯示出來。使用watchers,這種響應擴展到執行操做不必定與頁面上發生的事情相關。
組件
雖然你不使用組件也能夠利用Vue的響應和模板,但組件化的體系結構的實現是真的頗有趣。學習如何將行爲封裝到組件中是頗有趣的,它使我可以高效地分割代碼。相似於生活在C #世界在哪裏類須要作的太多了,我意識到當一個組件可能作的太多了。這種作法在某種程度上激發了智力,刺激了編程時的感受。
做爲一個孩子,個人夢想就是編程。確切地說是什麼?桌面應用程序和遊戲。當我開始從事真正的編程工做時,我真的很想從事那種個人工做使別人很受益的。我不知道你,但直到最近,我有一個先入爲主的概念「真正的程序員」層次結構,看起來像是這樣。
真正的程序員
操做系統/內核程序員
桌面應用程序
遊戲程序員
後端網絡程序員
前端網絡程序員
SharePoint /銷售人員/其餘平臺程序員
微軟Office(Access / Excel)程序員
不是真正的程序員
這種想法真的讓我以爲本身是個作後臺的人,更不用說前端了。在很長很長的一段時間裏,甚至在許多地方,前端和後臺二者都是同一我的來作。這致使了對前端較少關注,致使產生了不少低質量的站點。隨後,公司開始僱用前端的人,以美圓爲單位獲得他們的費用。這份工做名聲不太好,我不想和那個名聲有任何關係。
然而,如前所述,我發現本身處於一個須要依靠前端知足需求的尷尬位置。令我驚訝的是,瀏覽器的編程不只有趣,並且功能齊全。
瀏覽器的能力
我老是驚訝於瀏覽器能處理什麼。即便是可憐的老Internet Explorer,也能夠在不調用服務器的狀況下處理讀取、解析和建立Excel文件。畫布和SVG給咱們兩個超級有用的方法來創造美麗和動態的圖像/動畫。使用Ajax,咱們能夠建立週期性地、無縫地向用戶更新的動態內容。
分享就是快樂
在客戶端開發時若是沒有隱藏你的源代碼。它在那裏讓世界均可以看到。因此,也不震驚,JavaScript的項目在很大程度體如今GitHub上。此外,許多項目是麻省理工學院,Apache,或其餘許可很是友好。**Score!**來自使人敬畏的人的貢獻幫助我以更快、更有意義的方式爲個人公司作出貢獻。
即時知足
與桌面應用程序開發相似,咱們經常以可視化的方式看到代碼的影響。咱們可使用CSS和視覺上有吸引力的站點的一點天賦,來改善咱們做爲開發者在咱們的老闆和用戶中的印象。再加上一個視覺框架Twitter的Bootstrap或者Bulma,咱們真的能夠減小時間而增長一些吸引力。
Write Once Run Everywhere
舊的java web開發說跑起來比java自己要更真實。使代碼兼容多個瀏覽器和針對不一樣屏幕大小的佈局一樣面臨挑戰。這些挑戰自己頗有趣,由於這讓咱們瞭解了各類平臺。
JavaScript
JavaScript繼續以極快的速度發展,但它是一種很是有趣的語言。從「= =」和「= = =」差別中體會函數處理類原型繼承功能的編程方法,學習這種語言已經超好玩。可以將新的功能Babel到個人網站(項目)就更是屌爆了同樣。
做爲前端Web開發人員,我能夠與職場中的優秀人員一塊兒工做,並在更大的開發人員社區中得到對我想法的反饋。你爲何喜歡前端開發?你以爲Vue.js怎麼樣?
感謝閱讀!
Denny Headrick是一個Web開發者,他喜歡的工做方式太多。在各類頂級平臺上進行Vue.js討論的時候能夠看到他,他喜歡偶爾博客一下。你能夠跟他推特@dennythecoder。
匯智網小智翻譯(小智工做的網站,歡迎你們吐槽 ! www.hubwiz.com)
我也分享個 vue.js 全家桶課程: