我想告诉你,我开始享受使用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 全家桶课程: