<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div>
    <input type="text" name="" id="txt-title"/>
    <button id="btn-submit">submit</button>
  </div>
  <div>
    <ul id="ul-list"></ul>
  </div>   <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
  <script>
    var $txtTitle = $('#txt-title');
    var $ulList = $('#ul-list');
    var $btnSubmit = $('#btn-submit');     $btnSubmit.click(function(){
      var title = $txtTitle.val();
      var $li = $('<li>'+ title +'</li>')
      $ulList.append($li);
      $txtTitle.val('');
    })
  </script>
</body>
</html>

这是jquery实现一个todolist的过程,通过点击事件,初始化一个新的li标签,append进去的。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <input v-model='title'/>
    <button v-on:click='add'>submit</button>
    <ul v-for='item in list'>
      {{item}}
    </ul>
  </div>   <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
  <script>
    var data = {
      title: '',
      list: []
    }
    var vm = new Vue({
      el: '#app',
      data: data,
      methods: {
        add: function(){
          this.list.push(this.title);
          this.title = ''
        }
      }
    })
  </script>
</body>
</html>

这是vue实现todolist的过程。不管里面的变量还是函数都跟vue对象里面有对应关系。在点击按钮的时候只需要操作里面的数据就行了。

两者的区别:
1、数据和视图的分离
所谓视图就是dom,jquery的视图在html里面,也有在js里面,上面的例子比如li。他把视图和数据混在一块了,所以jquery,数据和视图没有分离。混在一块的坏处1,不符合开放封闭原则,对扩展开放,对修改封闭。所有这种混在一块的,都违背了扩展封闭原则。
vue中找数据和dom非常方便,数据是哪块,dom是哪块。数据和视图是分离的,数据就是data,vue中的列表不是空壳是有内容的。
2、以数据驱动视图
意思是我只改数据,jquery就违背了这点,li标签是生生append到list中。这种清空value是直接以底层到api来操作的。所以jquery中以数据驱动视图是完全没有的,不存在的。以数据驱动视图是通过数据的修改,由框架自动的把视图改了,我们不用管dom元素是怎么样的。jquery是干预了视图的修改。
vue中以数据驱动视图更明显了,在点击按钮的时候,只是把数据push到list,没有操作dom,只是关心数据到变化,数据到清空也是只关心数据到变化。
这种是不是更符合我们到开发模式,我们希望把数据模型改了就好,不需要管dom,dom的渲染其实跟业务流程关系不大。我们只需要关心数据的变化。数据和视图的分离,问题主要是解耦(开放封闭原则)。

使用jquery和使用框架的区别的更多相关文章

  1. jQuery与Vue的区别、从jQuery到Vue框架优点总结

    一.两者的区别 1.数据与视图分离 2.数据驱动视图 二.从jQuery到Vue框架的总结 1.数据与视图分离,解耦 2.数据驱动视图,只关心数据,DOM操作已经被框架封装

  2. Vue与React两个框架的区别对比

    简单介绍 React--Facebook创建的JavaScript UI框架.它支撑着包括Instagram在内的大多数Facebook网站.React与当时流行的jQuery,Backbone.js ...

  3. ZF、TP、CI等各种框架的区别

    (原标题:面试常见问题之ZF.TP.CI等框架的区别 http://blog.163.com/m13341159039_1/blog/static/245953061201522092212820/) ...

  4. jQuery Validate验证框架详解

    转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...

  5. jQuery介绍 DOM对象和jQuery对象的转换与区别

    jQuery介绍 DOM对象和jQuery对象的转换与区别 jQuery介绍      jQuery: http://jquery.com/      write less, do more.   j ...

  6. 分析一个类似于jquery的小框架

    在网上下了一个类似于jQuery的小框架,分析源码,看看怎么写框架. 选择器Select //用沙箱闭包其整个代码,只有itcast和I暴漏在全局作用域 (function( window , und ...

  7. 【转】jquery validate验证框架与kindeditor使用需二次提交的问题

    原文:http://blog.csdn.net/wlsyn/article/details/11536399在使用jquery的验证框架对kindeditor富文本编辑器进行验证的过程中,发现提 交时 ...

  8. mvc设计模式和mvc框架的区别

    Spring中的新名称也太多了吧!IOC/DI/MVC/AOP/DAO/ORM... 对于刚刚接触spring的我来说确实晕了头!可是一但你完全掌握了一个概念,那么它就会死心塌地的为你服务了.这可比女 ...

  9. 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享

    http://www.cnblogs.com/huyong/p/3454012.html 使用Jquery+EasyUI 进行框架项目开发案例讲解之五  模块(菜单)管理源码分享    在上四篇文章 ...

随机推荐

  1. k8s SLUB: Unable to allocate memory on node -1 错误

    Try to Fix Two Linux Kernel Bugs While Testing TiDB Operator in K8sWed, May 1, 2019 Wenbo Zhang Auth ...

  2. 解决Adobe cs6系列软件在Windows10操作系统中无法正常运行问题

    大家好,我是安德风,很高兴今天能给大家一起解决Adobe cs6系列软件在Windows10操作系统中无法正常运行的问题.今天我以Adobe Photoshop cs6在Windows10环境安装运行 ...

  3. 最新 中细软java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.中细软等10家互联网公司的校招Offer,因为某些自身原因最终选择了 中细软.6.7月主要是做系统复习.项目复盘.LeetC ...

  4. hdoj4099(字典树+高精度)

    题目链接:https://vjudge.net/problem/HDU-4099 题意:给T组询问,每个询问为一个字符串(长度<=40),求以该字符串为开始的fibonacci数列的第一个元素的 ...

  5. [转帖]是什么阻止了在18寸(450mm)晶圆上生产芯片?

    是什么阻止了在18寸(450mm)晶圆上生产芯片? https://news.cnblogs.com/n/644247/ 投递人 itwriter 发布于 2019-10-16 14:32 评论(0) ...

  6. .NET Core 配置文件

    老一代配置系统 1,XML格式 格式单一. 2,配置信息Kye,只能一维化配置 3,框架信息和应用程序信息混合到一起 应用程序中是 App.config web项目中           web.co ...

  7. Jenkins+maven+gitlab自动化部署之Jenkins部署(三)

    本章开始正式搭建Jenkins: 公司现在使用的jenkins版本是2.150.3,但是本次实验安装的版本我们选择最新的 2.164.3(当然,当你阅读这篇文章时,此版本已经不是最新),jenkins ...

  8. python 之 前端开发( JavaScript变量、数据类型、内置对象、运算符、流程控制、函数)

    11.4 JavaScript 11.41 变量 1.声明变量的语法 // 1. 先声明后定义 var name; // 声明变量时无需指定类型,变量name可以接受任意类型 name= " ...

  9. C++打印杨辉三角形

    #include <iostream> #include <iomanip> #include <Windows.h> using namespace std; # ...

  10. AJAX一些注释掉的语句

    var sysdept=JSON.parse(localStorage.getItem("loginSysUser")); for(var o in sysdept){ alert ...