vue 与jq 的对比
vue、react和angular,众所周知,他们是前端框架的3个大佬。这篇主要想对比一下用vue和用jq的区别,至于和其他框架的对比,我想vue的官网说的更为详细。
我算是独自用vue写过一个小型项目,然后维护过一个用react写的项目。至于angular2。。。只跟着写了下官方的例子。
首先,vue是啥。。。官方说法是--- Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。
这里就有两个疑问了,什么是渐进式框架,什么是自底向上逐层应用。
首先渐进式框架,你可以理解为vue(单单只是vue)是一个“核”,它尽可能的将自己精简,只保留核心功能,然后其他的功能再视情况拓展。举个例子就是:
一开始,你可以只把vue当做一个js库,像一个js插件那样使用。我以前也试过想用它来装装X,强行把它放到一个项目中使用,只把一个列表渲染出来。
然后,你用了后发现,哎?这种数据驱动的方式蛮舒服的。这时你就想把整个项目都用vue来做了。
再后来,你又想用个vue-router去做一下单页面。(vue-router已经不是核心的功能了,是拓展的)
再后来,你发现数据的流转有点长了,于是想用 vuex去管理一下数据。(再拓展)
再到SEO..blablabla
可以看到,vue可以逐步的去完成一个中大型项目的搭建,功能是渐进增加。这就是渐进式了。。
至于逐层。。。。。。感觉和渐进式差不多,我还没有深入了解。
说了这么一大堆,终于到了vue和jq的区别了。或者说,我为啥要用vue啊,还要学,又有全家桶,又blablabla.....
别急施主,请听我细细道来。。。
1、精力集中。Jq偏重于对dom的操作,由它的函数就很容易看出来,$()、parent()、find()。我们用jq的时候经常要去考虑怎么去渲染数据,怎么从视图中取到数据,这其实分散了我们的本该放在业务逻辑上的精力。而Vue则是数据驱动的,可以理解为我们需要先定义一种数据到视图的渲染规则,之后如果数据发生改变了,vue会帮我们重新渲染,所以我们只需将注意力放在怎么修改数据上就可以了。
2、代码结构。如果你用jq没有好的代码架构,很容易就回出现一种情况就是:js里写着html元素代码,而且可能会遍布很多地方。因为增删改查你都需要对dom进行操作,这里甚至可能会写多了些冗余代码。代码架构好一点的,可能会写成一种简版框架(即有专门的渲染函数,增删改查都会调用这个函数)。而vue就没有这个问题。
3、操作性。用jq去操作dom实际上是蛮麻烦的。比如说又个对象数组已经渲染成表格了,这时你需要修改某一个id的那个对象的数据行,jq的话最麻烦的做法就是在遍历里面先拿到id,检查相等,相等的话,用index去拿到要改的那个dom,再重新渲染。blablabla…而用vue的话,可以直接修改数据就可以了,而且你甚至可以用Array.map Array.filter 美滋滋~
4、模块化。使用jq的时候,如果你的js牛逼轰轰的写得已经超长了,然后你又觉得需要分下模块了,这时你有两选择,1是用seajs,requirejs等,2是用原生的import去管理你的代码。说实话,我没怎么用过requirejs去分模块,可能是我压根就想到这些js要怎么分。但vue的话我感觉模块和组件差不多,各个页面可以是一个模块,页面里面的某一块也可以是一个模块,我觉得vue维护起来比jq要容易得多。
5、单页面实现。讲真,单页面的实现原理估计大家都很熟了,一般是几个div在来回切换。如果一开始已经写好html,再来回切的话,html是太长了。如果用js去写又拼的很麻烦。如果你想用jq、原生实现页面切换,我能想到比较好的方式是用模版引擎...吗?但其实单页面的实现我感觉没那么简单,你不单单要考虑html能否单独写出来,还要考虑js需不需要按需加载,路由需不需要等等。。。用vue就不需要烦这些东西。
6、组件的复用。用vue最爽的莫过于使用别人写好的组件。UI组件我那个项目用的是element UI,其实如果你项目大的时候,有些组件(一些功能和视图的集合)可能会复用。这些相对于jq就是插件了,我就是不爽用script引入插件怎么了嘛?
7、性能。vue使用了虚拟dom技术,能够减少 dom的操作,能提高一定的效率。
最后,我为vue打call。。。。。。。
vue 与jq 的对比的更多相关文章
- Vue和React的对比
今晚我们来搞一搞Vue和React的对比好吧,话不多说今天我们直接开搞可好,各位小老板,开始吧 1. react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入, 所以在react中,是 ...
- Vue于React特性对比(三)
最近重学React,再次和vue做了对比. 一,为官方插件提供便利的第三方插件横行 React仅仅是一个ui框架.虽然官方提供了redux,react-router:但也有第三方的redux-thun ...
- vue引入JQ的方法
在vue中引入jq 用vue-cli脚手架工具构建项目成功后 当需要引入JQ,可用以下方法: 1.首先在package.json里的 dependencies加入"jquery" ...
- 导航栏中各按钮在点击当前按钮变色其他按钮恢复为原有色的实现方法(vue、jq、原生js)
一.vue如何实现? 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- vue和react全面对比(详解)
vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...
- JQ版本对比
JQ不知不觉来到第三版了,那么它们有什么不同呢? 下面先给大家推一个CDN加速的网站,上面有各种JQ的版本:http://www.bootcdn.cn/jquery/ 先来对比一下它们的“体重”,23 ...
- Vue于React特性对比(二)
一,关于响应式数据更新方式的实现 1)只有在data里面定义的数据才会有响应式更新 vue依赖的defineProperty的数据劫持加上依赖数据,实现数据的响应式更新.可以称之为依赖式的响应.因为依 ...
- JS与JQ的对比与提高
来吧, 案例1:先上个例子js写的省市二级联动 <!DOCTYPE html><html> <head> <meta charset="UTF-8& ...
- VUE引入jq bootstrap 之终极解决方案(测试)
初入VUE遇见的一些问题,在网上找了些方法,再根据自己的实际项目解决的问题写得此文,,希望对你有所帮助. vue-cli快速构建项目以及引入boostrap.jq各种插件配置 vue-cli脚手架工具 ...
随机推荐
- javaSpring知识点总结
1 js 概述 js是一门基于对象和事件驱动的脚本语言,主要应用在客户端 js特点: 交互性(信息的动态交互) 安全性(不允许直接访问本地硬盘) 跨平台(只要是可以解释js的浏览器都可以执行,和平台无 ...
- Unity 游戏框架搭建 2018 (二) 单例的模板与最佳实践
Unity 游戏框架搭建 2018 (二) 单例的模板与最佳实践 背景 很多开发者或者有经验的老手都会建议尽量不要用单例模式,这是有原因的. 单例模式是设计模式中最简单的也是大家通常最先接触的一种设计 ...
- tomcat端口被占用如何解决
有时候我们在eclipse中启动项目时,Tomcat服务器会报错,显示8080.8009.8005这几个端口被占用,此时你用debug启动项目时会发现不管用,console控制台什么信息也没有,此时产 ...
- 【oracle笔记3】多表查询
*多表查询 分类:1.合并结果集 2.连接查询 3.子查询 *合并结果集:要求被合并的表中,列的类型和列数相同. *UNION,去除重复行.完全相同的行会被去除 *UNION ALL:不去除重复行. ...
- hashMap 和 linkedHashMap 的区别和联系
直接举例说明. 运行如下例子程序 mport java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; ...
- (Linux学习笔记一:压缩)[20180209]
学习笔记一:压缩 2015年2月5日 上午 10:23 压缩命令 压缩文件的扩展名大多是*.tar.*.tar.gz.*.tgz.*.gz.*.Z.*.bz2 常见的压缩命令gzip与bzip2,其中 ...
- react-router-dom和本地服务本地开发 (node、webpack)
场景 使用react 做开发,避免会使用react-router React Router 已经是V4的版本 React Router 目前已经被划分成了三个包:react-router,react- ...
- Vuex的第一次接触
前言:最近在做Vue实现去哪网,想要实现在城市列表页面,点击某个城市的时候,主页的头部的城市会随着改变,就是首页和城市页面有共用的数据要分享,这里使用Vuex 1. Vuex是什么? 是Vue官方推荐 ...
- Git 原理入门
Git 是最流行的版本管理工具,也是程序员的必备技能之一. 即使天天使用它,很多人也未必了解它的原理.Git 为什么可以管理版本?git add.git commit这些基本命令,到底在做什么,你说得 ...
- Flask之蓝图的使用
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...