谈到这个话题首先就要说说Vue的出现,它并不是为了取代jQuery,可能接触过Vue的朋友觉得Vue好用,入门简单,再看官方对它的定义是一个渐进式框架,我对它的理解就是当你需要什么的时候你可以往上加没有什么硬性要求,像Vue、react之类的这些框架,都是把对DOM的操作转移到了操作数据和组件上面,这类框架就像一个空壳子,然后可以不断地往里面填东西,而熟悉jQuery的朋友可能还是会奉行jq至上的理念,可以实现一些Vue不能实现的功能。
而我认为这两者并不冲突,虽然在Vue里面加上jQuery的代码整个项目会显得比较乱但是如果是旧的项目,本来就大量依赖jQuery,那么重构起来也比较麻烦,可以使用Vue实现一些新的功能,旧的jQuery部分让其保留,而如果是新的技术选型为Vue的项目,那么肯定是能用Vue实现的就不去用jQuery尽量让整个项目看起来比较舒服,并且如果直接用jQuery操作DOM,大概率会造成数据不匹配问题,这时候就应该了解下jQuery的侧重点。如果使用jQuery来进行数据请求和动画效果的实现和Vue就不会冲突而是较好的过渡。
举个例子,假如有一个管理系统需要维护,那么页面上少不了大量的form请求和数据展示,当用户不断操作改变页面上内容的时候,Vue的核心虚拟DOM不会立即操作DOM,而是将这些更新的diff内容保存到本地一个JS对象中,最终将这个JS对象一次性attch到DOM树上,再进行后续操作,这样的好处是不会对真实的DOM进行太多操作,反观jQuery,它的任何操作都是去直接操作真实DOM,第一次用户操作改变了DOM结构后,紧接着下一个DOM更新请求又来了,反复的计算操作DOM就是浪费性能。所以在这种情况下如果要结合jQuery使用那么从性能方面考虑不妨让 jQuery负责数据请求就好。