几周之前我和一位面试者畅谈了关于我们应该如何选择js框架。他指出当大厂开始公开它们的独家秘方,是多么令人兴奋。开发者内心独白:“这些大厂书写的js与我的不同,他们卓越且成功。他们组织js的方式比我好?我要接受它?”
他们的秘密武器应该是优秀的,但不要因为其他人的激情而去假设它的优异性。在未理解之前,你不会从StackOverflow 上复制黏贴答案,所以为何你要复制黏贴一个框架?
这让我想到了当初我们决定在GitLab上使用 vue
更简单更易用
让我们投向Vue.js的主要原因在于:它能让团队书写用js更容易并且简化了js。上手Vue.js是相当容易的。它的源码有着很高的可读性,如果你需要仅用他的文档便可入门。你不必使用任何额外的库。如果需要可以和jQuery协同工作。他有许多的插件,但并非必须。我个人很喜欢优雅的Vue.js。用Vue.js配合已存在代码是十分简单的。Vue.js并不神秘,他的底层仅仅是一个对象。
我与许多js开发者讨论过后发现一个有趣的现象:那些花费主要时间在Angular上的开发者对js的理解并没有多深。我并不想这样的情形出现在我和我的伙伴身上。为何我们要书写“非js”?
这让我想到了当初使用Backbone的情形,我需要尽可能保持DRY(don`t repeat yourself),因为这玩意就是张白纸随你书写。Vue.js并未对其他东西做过多工作,它只关注数据。
但Vue.js在你要做的与他能做的之间达到了***的平衡。如果Backbone 是无政府状态(无人负责)那么Angular就是独裁者(Angular团队负责所有)。我觉得Vue.js像是共产主义:项目由你负责,但Vue.js为你铺设了一张可延展,健壮并且有弹性的安全网来帮助你更加有效地编程,并且规避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库,那么在不依赖文档的情况下,看懂上述例子中的代码并不困难。通常在其他框架中,此处需要简单暂停一下。当你执行“入门”级别的例子时,你感到满意。但当你想要在框架上获得花费成本的价值时,事情变的复杂起来。这并不会发生在Vue.js上,实际应用就与文档例子一样简单。
Vue.js + GitLab意味着更少的代码
那么这为GitLab解决了哪些问题?我加入之时,所有的代码使用JQuery书写,这并非有什么错误,不过这花费了更多的代码来解决每个问题。我们知道自己可以做的更好。一旦我们开始使用Vue.js,我们使用更少的代码便能够迅速且连续地解决复杂的问题。
举一个我们项目使用过程中简单且实际的例子:在GitLab Issue中,issue的状态是在closed 与open 间切换的。这个值经常需要变化,并且应用在许多的个view中。使用JQuery你需要30行左右的代码来实现该功能。
在Vue.js中,我们仅需要一行的js代码。其他代码我们加在HTML 中添加一些额外的属性。
尤雨溪甚至做一个碉堡的框架并不仅仅是书写优秀的代码。你需要一个优异的文档,一个帮组每一个人学习的强大社区,一个配套库的支持,大量插件帮组使用者解决困难,一个基于用户用户反馈并保证框架关联性的反馈循环。Vue.js是所有这些的集合体,并非仅仅只有优秀的代码。这就是我使用它的原因,那么你呢?