vue到底用在哪里呢?

我不知道为什么vue突然就火起来了,前端好像都在谈vue,我知道vue是解决了一些问题,数据双向绑定,使用起来也比较简单,我也试着写了一些demo,就是找不到什么场景用。
我感觉我low了,因为我习惯了PHP生成页面,然后用ajax更新页面片段html代码,多余的部分夹在页面片段的隐藏字段里,通过回调逐个更新textContent。
感觉没有遇到什么非得要用vue来解决的。更可怕的是我无法接受vue这样的方式。因为我设计的页面就是要手动刷新的,...
我想问问大家都把vue用在什么地方呢?这些地方一定要用vue实现吗?vue实现是不是简化了很多?让咱这些老土也开开眼呗,我是有在github上看到有人用vue做了一个饿了么的版本,感觉jquery或原生实现也不复杂,所以没感觉到实际的意义。(非常真诚的,绝非反讽,我是感觉我跟不上变化了

你是否还记得你当初写JQuery的时候,有写过$('#xxx').parent().parent().parent()这种代码呢?

写了很久的jquery了,可是从没遇到这样的需要通过不停的找parent才能定位的,所以我没有弄清楚到底是怎样的需求,如果可以的话,方便给出一个实际项目中能用的代码片段,不甚感激。

我的把上面我的做法稍微写个代码出来就是这样,我实际项目中更新数据也差不多是这样:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Test data update</title>
</head>
<body>
    <div>
        <div>
            <b key="date"></b>
            <span key="user.name"></span>
            <div><span key="articles.total"></span></div>
            <div>
                <div>
                    <span><div><span key="articles.views"></span></div>
                </span>
                <div><span key="articles.notes"></span></div>
                <span key="articles.updown.ups"></span><br><span key="articles.updown.downs"></span>
            </div>
        </div>
    </div>
    </div>
<script type="text/javascript">
    // 简化例子,就不引入jquery了。
    function update(data) {
        [...document.querySelectorAll('[key]')].forEach(el => {
            var keys = el.getAttribute('key').split('.');
            var vals = data;
            do {
                let key = keys[0];
                if (typeof vals[key] === 'undefined') {
                    break;
                }
                keys.shift();
                vals = vals[key];
            } while (keys.length);
            if (!keys.length) {
                el.innerHTML = vals;
            }
        });
    }
    window.onload = function () {
        // $.get(url, function(data){ update(data); }, 'json');
        update({
            date: new Date().toLocaleString(),
            user: {
                name: 'hello world'
            },
            articles: {
                views: 10,
                notes: 6,
                likes: 5,
                updown: {
                    ups: 2,
                    downs: 3
                }
            }
        });
    };
</script>
</body>
</html>

这是一个数据向页面更新的方式,如果要双向,就反过来更新一下data,也差不多,不过一般都是有请求后台,后台返回成功后(顺便带回成功后的数据)然后更新页面,所以我还是单向在更新页面了。

阅读 13.7k
9 个回答

推荐看看这个,我写的一篇入门vue.js二十问,里面有讲到为什么需要用vue并放弃jquery

代码之美 - Vue.js新手入门指南(分享自知乎网)https://zhuanlan.zhihu.com/p/...

看了上面的答案,我很无语。
技术框架选型是基于业务模型的。如果你的业务模型很简单,那么jquery+前端template就足够了,而且开发速度比vue快的多。上面说使用vue提高10倍的都是胡扯的。若论开发速度,vue快不起来。
如果你的业务模型比较复杂,那么就得考虑使用有一定的约束规范的框架了。复杂的框架开发速度提升有限,更多的是提供易维护性。
另外,框架选型基于你团队的技术人员实力是否能够扛起来。要知道,框架后面可能还有坑等着你去趟呢。

我也是刚接触 Vue 没多久,但是给我最大的感触就是,思考问题的方法不一样了。以前用惯 jQuery 或者 Zepto ,注重的是 DOM 结构本身;而 Vue 却注重数据(或者说是内容)。思考编程的方向变得不一样了,感觉确实受益良多,有种“原来也可以酱紫想”的感觉。

Vue的思想和jQuery的思想完全不同
Vue是以数据驱动视图、jQuery是直接操作DOM,用Vue之后你只需要改动数据,Vue会帮你自动更新View层的DOM,这好处难道还不够吗
还有一点是前后端分离的项目太方便了,当后端API还没写好,你可以在Vue里的data先写好数据,当API有了之后直接替换data数据就好了
作为前端,有了Vue少说我的效率提高10倍,这其中包括前期的编写、中期的修改、后期的维护

具体代码我就不贴了。。我就说一个。。自从写了vue。我就基本没有加班过。。。

还有我承认我是菜鸡。。vue就是一个能让我这样的菜鸡也不加班的玩意儿。。别的我都不care。。

抛开具体业务谈框架都是在耍流氓,既然你觉得用不到,那说明你业务没有这种需求,那就乖乖用jquery好了,等到你的业务需求变成了用jquery来实现MVVM了,你就知道使用场景了

其实别人怎么说都白搭,你没有体验过,别人说再多的你也体会不到, 你可以做一个项目,用jQuery与vue分别做一套。这样你就对比出来了,好处自然体会到了。大家都在抛弃jQuery走向MVVM了,这么多人不能都是没主见的吧。jQuery是过去式了,我一直觉得这句话很对,jQuery与bootstrap.css 一直受后端程序员的偏爱,因为简单好上手...

可能你的dom模板的复用性实在是很好,数据也不多js遍历起来也挺快吧。vue,对于业务类型的需求来说,就是可以不用调试数据和dom模板的结合,即使模板再怎么修改,需要做的工作量不大,避开了修改模板、更新数据调试的繁重、枯燥的工作

如果要分的话,jQuery算是工具库,就是提供了一些方便你操作DOM(主要是DOM还有其他)的函数。
vue.js 算是框架,就是别人已经写好了基础的页面结构,你按照它的要求把自己的内容填充进去就好了。

jQuery 学习起来确实方便,但是要写一个项目基本就是从 0 开始用自己的方法去写,只是jquery 提供了一些方便的操作而已。
vue.js 是 MVVM 的框架,写一个项目仅仅是按照它的要求把自己的内容填充进去,但是框架规定了如何去组织这个项目,既然是规定死的东西就很可能对某些项目来说这样写确实不好。

jquery学起来确实方便,用起来也方便,因为没有额外的东西要去学习。Vue.js 既然是框架,就要学习它的是设计思想,所以要学习额外的东西,用它规定的思想去写代码,这几乎就是学习一门新的语言所要求的。

可是我觉得,新手对整个项目的设计思想是没有的,对于大型的项目用框架好一点儿,虽然设计思想固定,但是总比没有经验的人瞎想出来的好。学习一些新的设计思想毕竟对自己也是种进步。
倒是各种设计思想都熟悉的人,才适合从 0 写一个项目,因为框架限制了他们的思想。

所以总结一下就是,题主不要懒了,好好学习新东西吧,等你牛X了在用jQuery,或许那个时候你更懒了,就不想用了。
Vue.js 吸取了 angular 等MVVM的经验教训,拿他们做了垫脚石,所以。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题