我们为何选择vue.js

批处理
• 阅读 3216

原文地址

几周之前我和一位面试者畅谈了关于我们应该如何选择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是所有这些的集合体,并非仅仅只有优秀的代码。这就是我使用它的原因,那么你呢?

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Stella981 Stella981
3年前
Dubbo爆出严重漏洞!可导致网站被控制、数据泄露!附解决方案
http://dy.163.com/v2/article/detail/F5FPIFRU0511Q1AF.html  !(http://dingyue.ws.126.net/2020/0216/125ec4c4p00q5rcrs0019d200ig009qg00ig009q.png)  来源:华为云  原文地址:https://w
Stella981 Stella981
3年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin