V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

Vue.js 等前端框架和 jQuery 是什么关系?是替代关系还是可以共存?

  •  1
     
  •   ericgui · 4 天前 · 4839 次点击
    请高人指点一二。

    如果可以共存,那么,什么时候用 jQuery,什么时候用 Vue.js 等框架?

    备注:前端框架,包括但不限于 Vue,React,Angular,San 等。
    第 1 条附言  ·  2 天前
    我就是最近在写一个小网站,有些小功能发现 jQuery 好使,有些地方,如果用 vue 就更方便一点。所以才来此问。

    本人不是前端程序员,没想到贵圈真乱。下面吵得不可开交。真是大开眼界。
    第 2 条附言  ·  2 天前
    真不是钓鱼贴,也没有讽刺的意思。

    就是感觉有点跟不上形式了。

    自己一个人写个网站,仅仅想把前端页面稍微做得好看一点,没想到竟然遇到这么多选择,我也是犯了选择障碍症了。

    哎。。。。。
    67 回复  |  直到 2018-01-17 04:00:01 +08:00
        1
    lhx2008   4 天前 via Android
    可以共存,但是意义不大。
    看你前端的逻辑和内容,
    前端复杂多变的话(后台,工具类,手机页面)用 mvvm,相比 jq,可以减少很多 dom 操作带来的工作量。
    内容为主的话(博客,论坛)用 jqury 也可以。
        2
    watzds   4 天前 via Android
    可以共存,也可以替代。
        3
    AlwaysBee   4 天前
    Vue 和 jQuery 都不能称之为框架
        4
    wizardoz   4 天前
    不是一样的东西,但是却有替代性,用好了 vue 之类的你将不在需要 jquery。
        5
    fengdra   4 天前 via Android   ♥ 6
    一个是自动将数据映射到 DOM,一个是手动管理 DOM,一起用不方便
        6
    feverzsj   4 天前
    前浪和后浪的关系,web dev 就是这么乱,不过 jquery 算是很长寿的了
        7
    lihongjie0209   4 天前
    在 DOM 操作方面, Vue 是 jquery 的升级版
        8
    luruitao   4 天前
    5 楼是最靠谱的,Vue 是建立了虚拟 DOM 到真实 DOM 的透明映射
        9
    SuperMild   4 天前
    带着这个问题,花三十分钟学习一下 Vue 就有自己的判断了
        10
    LINAICAI   4 天前 via iPhone
    jq 我觉得只能算是一个函数封装库罢了,vue 强调 mvvm 的开发模式和组件化的封装思路,至于 dom 操作没研究过 vue 不太清楚,个人认为各有各好处和应用场合
        11
    Phariel   4 天前 via Android
    vue 是模板引擎 jQuery 是增强工具 都不能算框架
        12
    mb135   4 天前   ♥ 11
    Vue 是网红,jQuery 是老艺术家,5 年之后可能很少人能记起来 Vue,10 年之后 jQuery 仍会大行其道。

    过气的网红不如狗,你懂的

    jQuery 最 NB 的地方不是各种新概念,而是只填坑不挖坑,孜孜不倦、默默无闻,不给码农添麻烦。

    而反观各种所谓的新概念框架呢?解决一个痛点的同时,带来 3 个新的痛点,而解决这 3 个新的痛点,需要各种插件各种黑科技,终于解决了这 3 个痛点,你会发现又引出了 9 个新的痛点,如此反反复复挖新坑填旧坑,陷入各种坑里不能自拔
        13
    miketeam   4 天前 via iPhone
    mb135 回答这么直接干嘛,不能吹概念别人该怎么混了啊
        14
    Sivan   4 天前
    @mb135 jQuery 很棒,但 10 年后 jQuery 绝对不会大行其道。响应式框架可能会昙花一现,但 10 年后如果前端还是 jQuery 的模式当主流,这个行业的人可以考虑转业了。
        15
    mb135   4 天前   ♥ 3
    @Sivan 只要 html 语言还在,只要 html 还有 dom,那么就永远有操作 dom 的需求,那么 jQuery 就永远有市场,除非 web 标准内置一套 jQuery,Html5 还真的内置了 querySelector,不过远没有 jQuery 实现的优雅。

    可以说 jQuery 反过来影响了 HTML5 标准的制定,起到了指导性的作用,改写了 web 的历史进程。就凭这一点,目前前端任何框架都没资格跟 jQuery 相提并论。(当然那些碰瓷式营销的的水军脸皮那么厚,谁也管不了他们)

    “文章本天成,妙手偶得之”,jQuery 的 api 让人感觉到 web 本来就应该是这个样子的,作者不是发明了 jQuery 而是发现了 jQuery,“本天成”当之无愧。
        16
    learnshare   4 天前
    可以共存,但由于工作机制完全不同,建议完全替代使用
        17
    zjsxwc   4 天前
    不冲突,共存的

    jquery 还是很有用的,dom 操作、deferred 封装的 promise、ajax 操作等等,比手写方便
        18
    slgz   4 天前
    感觉用了 vue 等之后,还要去学 webpack、npm、node (环境),等一推东西。非常的 boring。 不如 jQuery 来的实在,引入了 cdn,拿起键盘就是干
        19
    exonuclease   4 天前 via Android   ♥ 1
    笑看一群吹 jq 的 活动页写傻了这是?
    去拿 jq 撸复杂 spa 试试
        20
    mb135   4 天前 via Android   ♥ 6
    ls 某些低端培训码畜不要用自己在外包公司的悲惨经历去揣测别人,不是所有用 jq 的都是页面仔
        21
    arraysnow   4 天前
    @mb135 什么时候 jq “改写了 web 的历史进程”了?有相关文献吗,我张张见识···
        22
    svenz   4 天前
    @mb135
    1 首先不可否认 jq 的代码艺术价值 优雅的链式调用 无参构造确实非常的漂亮
    2 jquery 的最大存在价值是优雅的处理了浏览器的前端兼容性 但是随着规范化 十年后 jq 价值确实不大 艺术价值更多
    例如 H5 的 querySelector 和 querySelectorall 的存在 已经把使用 jq 的百分之五十的需求替代掉了.
    3 vue react ag 的出现事实上是比 jq 先进,主要解决的问题还是前端的状态问题降低了开发成本,用网红来形容不太恰当.
    4 同意你一点,不是所有的 jq 都是页面仔,但是想在大项目里面写好 jq(直接操作 dom)非常难,虚拟 dom 要比直接操作 dom 减轻了非常多的压力,页面仔是 hold 不住 jq 的大型的 jquery 项目的


    最后完全可以共存看项目性质,如果是一个简单的针对移动端的页面甚至 jquery 也不需要 h5 的 dom API 已经完全足够了
        23
    uestc   4 天前 via Android
    内部系统的话随便找个后端拿 jq 就可以开撸,vue 的话还是要学个几天才能开工
        24
    ThomasChan   4 天前
    刚翻译了一篇关于这些框架的文章,楼主可以看看 https://zhuanlan.zhihu.com/p/32910275 他们的生命周期,共存是可以的,但是只会增加复杂度,不同的框架解决不同的痛点,要先知道自己想做的东西的恢复砸到什么程度,可能会遇到什么样的问题,再选框架
        25
    fy   4 天前   ♥ 1
    1. 可以共存,需要配置一下

    2. 随着对 mvvm 框架的逐渐熟悉,自然而然的就不再需要 jQuery 了。

    3. @slgz #18 不需要学这些。你只需抄起 cli (比如 vue-cli )自动生成初始项目,npm install && npm run dev 就可以开搞了。

    4. 就算不上全家桶,直接从 cdn 也可以单独引入 vue.js ,并以传统的方式来使用。数据绑定是很好的特性,即使如此也很有用。

    5. cli 弄来的全家桶是全方位的革新,这代表着 前后端分离 + 资源自动打包 + mvvm + es6 等一系列内容的引入,很多东西都是我们以前梦寐以求的,比如说自动合并 js、css 并将其压缩(很早以前用单独的脚本来实现,只能说勉强工作);比如说写标准 css,自动适配多个浏览器(自动加入 -webkit- -ms- -moz- 前缀); es6 带来的更是全方位的提升,再也不必像以前那样倒腾 coffeescript 之类了。

    6. 最后建议动手试一试,前端学习成本并不高。
        26
    libook   4 天前   ♥ 1
    如果说是框架的话,就看对框架的定义是什么了。
    个人认为:
    vue 是框架,配套的是特有的对 WEB 系统的抽象以及一系列搭建 WEB 系统的思想和方法论;
    jQuery 是库,提供了方便处理 DOM、方便调用常规算法的工具。

    理论上来说,一个项目既可以用 jQuery 来写,也可以用 vue 来写,也可以什么都不用原生 JS 来写,只不过针对不同项目的情况,各自的实现成本不同,而这种成本并不是绝对的。

    两者的功能既有交集,又有各自特有的,看具体的项目需求和采用的架构思想,决定究竟适合使用什么技术乃至如何搭配。
        27
    notreami   4 天前   ♥ 1
    居然不是从行业、场景出发去选择框架,而是先去选择框架,再来适应行业、场景,真是神奇啊~~
        28
    changwei   4 天前 via Android
    如果你是后端开发人员,我可以打个比方,jq 就是手写 sql,vue.js 就是用了 orm
        29
    exonuclease   4 天前 via Android
    @mb135 不好意思我奶茶家的。某些低端培训码畜不要用自己在外包公司的悲惨经历去揣测别人,用 jq 的十有八九都是苦逼页面仔,能用 jq 撸 spa 的人不会傻到这么干的。
        30
    mb135   4 天前   ♥ 2
    @exonuclease 爷我是腾讯家的出来炫耀过吗?我会说 QQ 邮箱现在还在用 iframe + jQuery 吗?没有任何应用一个 iframe + jQuery 解决不了,如果有,就用两个。

    我会说 spa 是邪路吗?不要说中小公司,就是大公司的应用也很少用 spa,github 几年前就尝试过 spa 了,现在不还是乖乖的换回后端渲染,只要浏览器还有地址栏,还有刷新功能,spa 就是邪路,就是噱头。
        31
    mb135   4 天前
    github 和国产的 gitee 都是用的传统的 jquery,国产的 coding 用了 angular,大家可以体验一下哪个用起来舒服,coding 也不是用的纯 spa,傻子才用纯 spa,只是用 angular 实现了一些切换效果,那些效果用 jquery 完全可以做出来。
        32
    mb135   4 天前 via Android
    spa 永远模拟不出来后端渲染的那种拳拳入肉的体验。后端渲染的页面点击的时候像是直接在墙上作画,spa 操作起来像是在墙上铺了纸(铺的很不贴实),在纸上作画
        33
    akinoniku   4 天前
    @mb135

    C++ 哪点比 PHP 弱?但要做网站还是有不少人选 PHP,毕竟成本摆在那里。

    理智一点啦,还什么拳拳入肉。
        34
    zpvip   4 天前
        35
    rogwan   3 天前 via Android
    虚拟 dom 用起来,页面渲染总有一种微微喝醉酒的感觉
        36
    dan2001go   3 天前
    @zpvip @mb135
    https://zhuanlan.zhihu.com/p/22782487

    这篇文章扎心了。话说自己从最早原生(那时候还没 jQuery )开始写起。后来用了 jQ。
    现在是完全看不懂了。。怎么写一个前端代码要这么多花头。。

    不过我的业务场景大多还是传统的页面渲染为主的那种。如果出去面试,说主要用 jQuery,大概率会被直接干掉的 T_T
        37
    SourceMan   3 天前 via iPhone
    看到了楼上某些可能老前辈守旧的姿态,感觉很可笑
    哦哦,可能也是连 vuejs 都学不好的人,只会 jq,所以特别恼怒现在哪里都用 react,vuejs,ng,jq 被慢慢淡忘
        38
    janus77   3 天前
    相当于后端同时使用 mysql 和 oracle 的关系
        39
    abcbuzhiming   3 天前
    @changwei 先不谈前端,手写 sql 怎么了,目前国内凡是要和钱打交道的领域基本去 ORM 化了,mybatis 在国内可是远比 hibernate 流行的多的
        40
    abcbuzhiming   3 天前
    @mb135 SPA 到底存在什么问题,能说具体一点吗
        41
    SuperMild   3 天前
    上面说 SPA 不能拳拳入肉、或像微微喝醉酒,我很怀疑是不是被渐变动画过程影响了感觉,如果去掉全部过渡动画,SPA 也是瞬间变化的,而且通常比页面刷新变得更快,正是由于变化太快,页面又不刷新,所以通常会加个渐变过程让用户感觉变化不显突兀。
        42
    lalalakakaka   3 天前   ♥ 1
    我大概理解诸位大佬们的分歧点在哪里了。
    正方:
    目前前端页面发展越来越复杂,尤其是 SPA 的流行,必然要求前端技术向虚拟 DOM 操作框架推进。所以要有 vue,react 等等~

    反方:
    可是并不是所有的页面都是这么复杂啊,html 本身就是个极简单的东西(后端曰:不就是拼字符串嘛)。很多时候我们只是做个 CRUD 就 OK 了,哪有那么多复杂需求。而且功能强如 qqmail,技术强大如 github 都在用 jQ。你做个博客页还用 vuejs 什么的岂不是伪需求?
        43
    exonuclease   3 天前 via Android
    我炫耀啥了这不你先攻击我外包公司的么?哦原来 qq 邮箱是 jq 写的啊 怪不得那么难用 隔壁 gmail 老早 spa 了
    @mb135
        44
    exonuclease   3 天前 via Android
    麻烦各位 jq 的支持者 自己去招聘网站看看 jd 要求会 jq 的多还是三大框架的多 大家都是傻子?
    另外 其实我是写 node 后端的我跑来掺和这事干嘛
        45
    sangmong   3 天前
    前排吃瓜
        46
    assad   3 天前 via Android
    @exonuclease 放弃你的 node 吧,赶紧用 JAVA。
        47
    ziki   3 天前
    比较两个事物都分析各自优缺点,针对场景去选择,为什么一定要一方碾压一方的结果呢?
        48
    codermagefox   3 天前
    我只想说,要是后端看到这个帖子又要说:"你看看这群前端啊,唉,我就说嘛..."
        49
    dan2001go   3 天前 via Android
    @codermagefox 哈哈,后端能好到哪里去啊。前端这叫内战,无非就是围绕着 JavaScript 然后吵来吵去。

    后端那就是世界大战了,比如吼一句那个经典的台词『 PHP 是是世界上最好的语言!』
        50
    codermagefox   3 天前
    @dan2001go #49 然而 PHP 就是世界上最好的语言啊
        51
    ZSeptember   3 天前 via Android
    看场景使用。所以是并存的吧。现在的话,一般对外的产品应该用后端渲染的多,对内的管理系统应该很多都开始用 spa 了。
        52
    changlers   3 天前
    jq 其实当成原声 js 的增强库用,mvvm 有自己的一套思想,原生 js 写的好什么用什么都行框架主要还是更专注,现在的年轻人啊,不要听的风是的雨,也要有自己的判断
        53
    changlers   3 天前
    框架更专注思想,怎么限制代码,让团队合作起来更方便更有效率
        54
    gowk   3 天前 via Android
    科科,钓鱼贴
        55
    Tuisku   3 天前
    我司用 React, 所以我也要用 React
    但我其实只是相当一个"页面仔", 而且我一后端容易吗我 233
        56
    Tuisku   3 天前
    @Tuisku #55
    相当 => 想当 mmp
        57
    Pastsong   3 天前
    @mb135 hhhh, b 了
        58
    ericgui   3 天前
    @gowk 不是钓鱼贴。

    我在写一个小网站,有几个页面用 jQuery 感觉很方便,但有一个页面,似乎用 Vue 的数据映射更好,因为数据要重复利用。用在一个页面的好几个地方。

    所以才有此问。
        59
    gowk   3 天前 via Android
    @ericgui 惊了?还没睡?保重身体吧
        60
    ericgui   3 天前
    @gowk 哥在美国,现在是白天。
        61
    Mutoo   2 天前
    可以共存的,vue 提供了组件生命周期的 hooks 可以在 mounted 的时候引入各种 jquery 插件 /事件的初始化,以及在 beforeDestroy 解构各种组件 /事件

    https://vuejs.org/v2/guide/instance.html#Instance-Lifecycle-Hooks
        62
    DOLLOR   2 天前
    这个年代已经可以抛弃 jq 了,因为能用 vanilla.js 做的事,为何还要多此一举用 jq 呢?
        63
    overflowHidden   2 天前
    @exonuclease 不要无脑吹 spa 了。spa 解决的无非是用户体验,实际开发坑有多少就不说了。这年头不是啥都是 spa 的。现在阿里都不能保证完全去掉 jq,更何况你区区奶茶东了。
        64
    Plsea   2 天前
    又到了我第五喜欢的前端撕 X 环节
        65
    KuroNekoFan   2 天前
    @overflowHidden spa 那不叫坑那叫新挑战,传统页面跳转一跳,旧的状态前端完全不用管,spa 的形态下状态变化全部前端维护,难度(坑)比传统页面跳转大很多不是必然的吗?
        66
    guomuzz   1 天前
    vue react ag 这种只关心数据了 需要什么 dom 组件 搞好放在那就行了 数据变 dom 自己就变了 不用太关心 dom
    jq 就是手动撸 dom 你如果数据没多大变化想用 jq 就用呗 哪个合适用哪个 喜欢哪个用哪个 不知道喜欢哪个就两都用一遍再决定 多体验一种技术 以后也能吹逼了 不能学小马过河啊
        67
    ericgui   1 天前
    @guomuzz 谢谢大佬。我思来想去半天,还是暂时不用 vue,项目需要抓紧上线,还要学 vue,有点来不及:)
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   623 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 76ms · UTC 22:14 · PVG 06:14 · LAX 14:14 · JFK 17:14
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1