jQuery是使用选择器($)选取DOM对象,对其进行赋值、取值、事件绑定等操做,其实和原生的HTML的区别只在于能够更方便的选取和操做DOM对象,而数据和界面是在一块儿的。好比须要获取label标签的内容:$("lable").val();
,它仍是依赖DOM元素的值。 Vue则是经过Vue对象将数据和View彻底分离开来了。对数据进行操做再也不须要引用相应的DOM对象,能够说数据和View是分离的,他们经过Vue对象这个vm实现相互的绑定。这就是传说中的MVVM。css
列表添加一个元素,下图为vue和jquery两种操做的代码,咱们从中能够看出vue只须要向数据message里面push一条数据便可完成添加一个li标签的操做,而jquery则须要获取dom元素节点,并对dom进行添加一个标签的操做,若是dom结构特别复杂,或者添加的元素很是复杂,则代码会变得很是复杂且阅读性低。
vue:html
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <div id="app"> <ul> <!--根据数组数据自动渲染页面--> <li v-for="item in message">{{item}}</li> </ul> <button @click="add">添加数据</button> </div> </body> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script> new Vue({ el: '#app', data: { message: ["第1条数据","第2条数据"], i:2 }, methods:{ //向数组添加一条数据便可 add:function(){ this.i++ this.message.push("第"+this.i+"条数据") } } }) </script>
jQuey:vue
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <div id="app"> <ul id="list"> <li>第1条数据</li> <li>第2条数据</li> </ul> <button id="add">添加数据</button> </div> </body> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $(document).ready(function() { var i=2; $('#add').click(function() { i++; //经过dom操做在最后一个li元素后手动添加一个标签 $("#list").children("li").last().append("<li>第"+i+"条数据</li>") }); }); </script>
控制按钮的显示隐藏,下图为vue和jquery两种操做的代码,咱们从中能够看出vue只须要控制属性isShow的值为true和false便可,而jquery则仍是须要操做dom元素控制按钮的显示和隐藏。
Vue:html5
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <div id="app"> <ul> <!--根据数组数据自动渲染页面--> <li v-for="item in message">{{item}}</li> </ul> <button @click="add" v-show="isShow">添加数据</button> <button @click="showButton">隐藏按钮</button> </div> </body> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script> new Vue({ el: '#app', data: { message: ["第1条数据","第2条数据"], i:2, isShow:true }, methods:{ //向数组添加一条数据便可 add:function(){ this.i++ this.message.push("第"+this.i+"条数据") }, //控制isShow的值便可 showButton:function(){ this.isShow=false; } } }) </script>
jQuery:jquery
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <div id="app"> <ul id="list"> <li>第1条数据</li> <li>第2条数据</li> </ul> <button id="add">添加数据</button> <button id="showButton">隐藏按钮</button> </div> </body> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $(document).ready(function() { var i=2; $('#add').click(function() { i++; //经过dom操做在最后一个li元素后手动添加一个标签 $("#list").children("li").last().append("<li>第"+i+"条数据</li>") }); //须要手动隐藏dom元素 $("#showButton").click(function(){ $("#add").hide() }) }); </script>
内容讲的比较浅,主要就是分析一下vue和jquey对比的区别,上面两个例子只是作了一个简单的说明,然而vue能解决的问题远比这些要多的多,复杂的多。数组
然而两者也是能够结合起来一块儿使用的,vue侧重数据绑定,jquery侧重样式操做,动画效果等,则会更加高效率的完成业务需求。app