当前位置: 首页 > news >正文

西宁网站建设开发wordpress自助建站

西宁网站建设开发,wordpress自助建站,工商总局企业信息查询,简单网页模板代码MVVM由以下三个内容构成: Model:数据模型View:界面ViewModel:作为桥梁负责沟通View和Model 在JQuery时期,如果需要刷新UI,需要先取到对应的 DOM 再更新 UI,这样数据和业务的逻辑就和⻚⾯有强耦合。 在 MVVM 中,UI 是…

MVVM由以下三个内容构成:

  • Model:数据模型
  • View:界面
  • ViewModel:作为桥梁负责沟通View和Model

在JQuery时期,如果需要刷新UI,需要先取到对应的 DOM 再更新 UI,这样数据和业务的逻辑就和⻚⾯有强耦合。

在 MVVM 中,UI 是通过数据驱动的,数据⼀旦改变就会相应的刷新对应的UI,UI如果改变,也会改变对应的数据。这种⽅式就可以在业务处理中只关⼼数据的流转,⽽⽆需直接和页面打交道。ViewModel 只关⼼数据和业务的处理,不关⼼ View 如何处理数据,在这种情况 下,View 和 Model 都可以独⽴出来,任何⼀⽅改变了也不⼀定需要改变另⼀⽅,并且可以将⼀些可复⽤的逻辑放在⼀个 ViewModel 中,让多个 View 复⽤这个 ViewModel。 在 MVVM 中,最核⼼的也就是数据双向绑定,例如 Angluar 的脏数据检测,Vue2中的数据劫持。

脏数据检测

当触发了指定事件后会进⼊脏数据检测,这时会调⽤ $digest 循环遍历所有的数据观察者, 判断当前值是否和先前的值有区别,如果检测到变化的话,会调⽤ $watch 函数,然后再次调⽤ $digest 循环直到发现没有变化。循环⾄少为⼆次 ,⾄多为⼗次。

脏数据检测虽然存在低效的问题,但是不关⼼数据是通过什么⽅式改变的,都可以完成任务,但是这在 Vue 中的双向绑定是存在问题的。并且脏数据检测可以实现批量检测出更新的值,再去统⼀更新 UI,⼤⼤减少了操作 DOM 的次数,所以低效也是相对的。

数据劫持

Vue2 内部使⽤了 Object.defineProperty() 来实现双向绑定,通过这个函数可以监听到 set 和 get 的事件。

Object.defineProperty 虽然已经能够实现双向绑定了,但是他还是有缺陷的。

1. 只能对属性进⾏数据劫持,所以需要深度遍历整个对象

2. 对于数组不能监听到数据的变化

虽然 Vue 中确实能检测到数组数据的变化,但是其实是使⽤了 hack 的办法,并且也是有缺陷的。

反观 Proxy 就没以上的问题,原⽣⽀持监听数组变化,并且可以直接对整个对象进⾏拦截, 所以 Vue3 使⽤ Proxy 替换 Object.defineProperty

http://www.ds6.com.cn/news/73121.html

相关文章:

  • 铜陵做网站的建设公司网站大概需要多少钱?
  • wordpress新闻小程序seo技术培训中心
  • 温州营销网站制作联系电话怎么注册网站平台
  • 哪个网站可以做司考题泾县网站seo优化排名
  • 陕西网站开发公司电话头条指数
  • 淘宝联盟里的网站推广怎么做站内关键词排名软件
  • 深圳手机网站建设天津百度分公司
  • 万城建设网站郑州模板网站建设
  • 哪里有零基础网站建设教学培训网盘网页版登录入口
  • 绵阳哪个网站做外卖做的好百度热搜风云榜
  • 自己网站做虚拟币违法吗优化服务
  • 机械公司网站建设seo定义
  • 北京王府井集团股份有限公司百度点击优化
  • 固安做网站最新足球赛事
  • 网站 建设 业务需求表完美动力培训价格表
  • wordpress连接数据修改seo百度贴吧
  • 网站哪家做的比较好的百度推广客户端教程
  • 视频网站开发项目新东方烹饪学校
  • 滨江区高端网站建设深圳网站设计小程序
  • 百度网站建设公司室内设计培训
  • 网站除了域名还要什么用浙江seo技术培训
  • 网站的网页声明怎么做搜索引擎排名google
  • 怪兽网站模板网站seo的主要优化内容
  • dede网站版权信息标签合肥网络优化公司有几家
  • 怀化新站优化seo诊断分析工具
  • 一页网站首页图如何做seo自然优化排名技巧
  • 网站文件夹 安全设置seo是什么地方
  • 广州网站设计皆赞乐云践新花都网络推广seo公司
  • 西安动力无限网站建设怎样做一个网站平台
  • 省级精品课程网站如何在百度上发布自己的广告