vue.js的总体评价”简单却不失优雅,小巧而不乏大匠”
<强> Vue.js简介强>
Vue。js的作者为埃文你(尤雨溪),任职于谷歌创新实验室,虽然Vue是一个个人项目,但在发展前景上个人认为绝不输于谷歌的AngularJs、下面我会将Vue与角(1.0角+版本)做一些简单的比较。
Vue的主要特点就和它官网(http://cn.vuejs.org/)所介绍的那样:
(1)简洁(2)轻量(3)快速(4)数据驱动(5)模块友好(6)组件化
下面看一段角的实现双向绑定的代码
//html & lt;身体ng-app=癿yApp”比; & lt; div ng-controller=癿yCtrl”比; & lt; p>{{注意}}& lt;/p> & lt;输入类型=拔谋尽眓g-model=白⒁狻北? & lt;/div> & lt;/body>//js var myModule里=角。模块(“myApp”,[]); myModule里。控制器(“myCtrl”, [scopp美元,函数(范围美元){ 美元的范围。请注意="; ]); >之前然后再看一下Vue的代码
//html & lt; body> & lt; div id=坝τ谩北? & lt; p>{{注意}}& lt;/p> & lt;输入类型=拔谋尽眝模型=白⒁狻北? & lt;/div> & lt;/body>//js var vm=new Vue ({ 埃尔:“#应用”, 数据:{ 注:“ } }) >之前相比较而言我个人认为Vue的代码编写风格更加简洁,并且通俗易懂。
<强>不失优雅强>
Vue虽然是一个比较轻量级的框架,简单轻量的同时还非常的人性化,其提供的API也是非常的容易理解,同时也提供了一些很便捷的指令和属性。
例如: 点击
(1)绑定事件
<代码> & lt; v:点击=癲oSomething祝辞& lt;/a> 代码>
可以简写为:
<代码> & lt; @click=癲oSomething祝辞& lt;/a> 代码>
(2)绑定动态属性
<代码> & lt; v-bind: href=" https://www.yisu.com/zixun/url " rel=巴獠縩ofollow”rel=巴獠縩ofollow”祝辞& lt;/a> 代码>
可以简写为:
<代码> & lt;: href=" https://www.yisu.com/zixun/url " rel=巴獠縩ofollow”rel=巴獠縩ofollow”祝辞& lt;/a> 代码>
(3)便捷的修饰符
& lt; !——阻止单击事件冒泡——比; & lt; @click.stop=" doSomething "祝辞& lt;/a> & lt; !——只在按下回车键的时候触发事件——比; & lt;输入@keyup.enter=疤峤弧北? >之前(4)实用的参数特性
& lt; !——防反跳设置一个最小的延时——比; & lt;输入v模型="注意"防反跳=" 500 "比; & lt; !——在“改变”而不是“输入”事件中更新数据——比; & lt;输入v模型=拔毒眑azy> >之前怎么样,是不是感觉优雅极了。
<强>小巧强>
说起小巧,那应该首先要关注下Vue的源码大小,Vue的生产版本(即最小版)源码仅为72.9 kb,官网称gzip压缩后只有25.11 kb,相比角的144 kb缩小了一半。
小巧的一种好处就是可以让用户更自由的选择相应的解决方案,在配合其他库方面它给了用户更大的空间。
如Vue的核心默认是不包含路由和Ajax功能,但是如果项目中需要路由和Ajax,可以直接使用Vue提供的官方库Vue-router及第三方插件vue-resource,同时你也可以使用其他你想要使用的库或插件,如jQuery的Ajax等。
是不是感觉非常的灵活。
<强>不乏大匠强>
Vue虽然小巧,但是“麻雀虽小五脏俱全”,在构建大型应用的时候也是得心应手。
结合一些第三方模块构建工具,如CommonJS, RequireJS或者SeaJs,可以轻松实现代码的模块化。
但是在这里小编不推荐使用上述构建工具,直接使用ES6的模块化功能,再结合Webpack进行相应打包是目前最热门的方案。
在今后的文章中,我也会对其进行介绍,包括Webpack的配置。
Vue的组件化功能可谓是它的一大亮点,通过将页面上某一组件的html, CSS, javascript代码放入一个.vue的文件中进行管理可以大大提高代码的维护性。
例如:
//App.vue & lt; template> & lt; div类="盒子" v-text=白⒁狻痹? lt;/div> & lt;/template> & lt; script> 出口默认{ 数据(){ 返回{ 注:“这是一个组件的html模板!” } } } & lt;/script> & lt; scoped>风格; .box { 颜色:# 000; } & lt;/style>浅谈Vue.js