我們?yōu)楹芜x擇vue.js
幾周之前我和一位面試者暢談了關于我們應該如何選擇js框架。他指出當大廠開始公開它們的獨家秘方,是多么令人興奮。開發(fā)者內(nèi)心獨白:“這些大廠書寫的js與我的不同,他們卓越且成功。他們組織js的方式比我好?我要接受它?”
他們的秘密武器應該是優(yōu)秀的,但不要因為其他人的激情而去假設它的優(yōu)異性。在未理解之前,你不會從StackOverflow 上復制黏貼答案,所以為何你要復制黏貼一個框架?
這讓我想到了當初我們決定在GitLab上使用 vue
更簡單更易用
讓我們投向Vue.js的主要原因在于:它能讓團隊書寫用js更容易并且簡化了js。上手Vue.js是相當容易的。它的源碼有著很高的可讀性,如果你需要僅用他的文檔便可入門。你不必使用任何額外的庫。如果需要可以和jQuery協(xié)同工作。他有許多的插件,但并非必須。我個人很喜歡優(yōu)雅的Vue.js。用Vue.js配合已存在代碼是十分簡單的。Vue.js并不神秘,他的底層僅僅是一個對象。
我與許多js開發(fā)者討論過后發(fā)現(xiàn)一個有趣的現(xiàn)象:那些花費主要時間在Angular上的開發(fā)者對js的理解并沒有多深。我并不想這樣的情形出現(xiàn)在我和我的伙伴身上。為何我們要書寫“非js”?
這讓我想到了當初使用Backbone的情形,我需要盡可能保持DRY(don`t repeat yourself),因為這玩意就是張白紙隨你書寫。Vue.js并未對其他東西做過多工作,它只關注數(shù)據(jù)。
但Vue.js在你要做的與他能做的之間達到了***的平衡。如果Backbone 是無政府狀態(tài)(無人負責)那么Angular就是獨裁者(Angular團隊負責所有)。我覺得Vue.js像是共產(chǎn)主義:項目由你負責,但Vue.js為你鋪設了一張可延展,健壯并且有彈性的安全網(wǎng)來幫助你更加有效地編程,并且規(guī)避dom帶來的影響。
為了讓你理解我的想法,請看代碼點擊預覽
- <div id="journal">
- <input type="text" v-model="message">
- <div>{{message}}</div>
- </div>
- var journal = new Vue({
- el: '#journal',
- data: {
- message: 'Your first entry'
- }
- });
如果你曾看過一些js庫,那么在不依賴文檔的情況下,看懂上述例子中的代碼并不困難。通常在其他框架中,此處需要簡單暫停一下。當你執(zhí)行“入門”級別的例子時,你感到滿意。但當你想要在框架上獲得花費成本的價值時,事情變的復雜起來。這并不會發(fā)生在Vue.js上,實際應用就與文檔例子一樣簡單。
Vue.js + GitLab意味著更少的代碼
那么這為GitLab解決了哪些問題?我加入之時,所有的代碼使用JQuery書寫,這并非有什么錯誤,不過這花費了更多的代碼來解決每個問題。我們知道自己可以做的更好。一旦我們開始使用Vue.js,我們使用更少的代碼便能夠迅速且連續(xù)地解決復雜的問題。
舉一個我們項目使用過程中簡單且實際的例子:在GitLab Issue中,issue的狀態(tài)是在closed 與open 間切換的。這個值經(jīng)常需要變化,并且應用在許多的個view中。使用JQuery你需要30行左右的代碼來實現(xiàn)該功能。
在Vue.js中,我們僅需要一行的js代碼。其他代碼我們加在HTML 中添加一些額外的屬性。
尤雨溪甚至做一個碉堡的框架并不僅僅是書寫優(yōu)秀的代碼。你需要一個優(yōu)異的文檔,一個幫組每一個人學習的強大社區(qū),一個配套庫的支持,大量插件幫組使用者解決困難,一個基于用戶用戶反饋并保證框架關聯(lián)性的反饋循環(huán)。Vue.js是所有這些的集合體,并非僅僅只有優(yōu)秀的代碼。這就是我使用它的原因,那么你呢?