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

北京专业制作网站的公司wiki网站开发工具

北京专业制作网站的公司,wiki网站开发工具,企业所得税怎么征收2021,什么做网站开发在 Vue2 中,响应式系统是通过 Object.defineProperty 实现的,它可以劫持对象的属性 getter/setter,但有两个大问题: 不能监听数组的索引变动(arr[0] xxx 无法触发更新)。不能监听数组的 length 变化&#…

在 Vue2 中,响应式系统是通过 Object.defineProperty 实现的,它可以劫持对象的属性 getter/setter,但有两个大问题:

  1. 不能监听数组的索引变动arr[0] = xxx 无法触发更新)。
  2. 不能监听数组的 length 变化arr.length = 0 无法触发更新)。

🔑 Vue2 的解决办法

Vue2 在初始化时,会 重写数组的 7 个变更方法,让它们在调用时不仅修改数据,还能通知视图更新。

这 7 个方法是:

  • push
  • pop
  • shift
  • unshift
  • splice
  • sort
  • reverse

实现思路:

  1. 拿到数组原型上的方法(Array.prototype.push 等)。

  2. 新建一个对象,继承 Array.prototype

  3. 在这个对象上重写上面 7 个方法:

    • 调用原始方法完成数据修改;
    • 手动触发 dep.notify(),告诉依赖进行视图更新。

源码简化版(伪代码)

const arrayProto = Array.prototype;
const arrayMethods = Object.create(arrayProto);['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].forEach(method => {arrayMethods[method] = function (...args) {// 先调用原始方法const result = arrayProto[method].apply(this, args);// 通知依赖更新this.__ob__.dep.notify();return result;}});

当 Vue2 检测到一个属性是数组时,就会把它的原型指向 arrayMethods,从而拦截这几个操作。


🔒 局限性

  • 直接修改数组索引:vm.arr[1] = 100 不会触发更新
  • 修改 lengthvm.arr.length = 0 不会触发更新

解决办法:

  • 使用 Vue.set(vm.arr, index, value)this.$set(vm.arr, index, value)
  • 使用 splice 替代:vm.arr.splice(index, 1, value)

🆕 Vue3 的变化

Vue3 用 Proxy 重写了响应式系统,能直接监听数组的索引和 length 变化,不需要像 Vue2 那样 hack。


👉 总结:

Vue2 通过重写数组的 7 个变更方法来解决数组监听问题,但索引和 length 的变动仍然无法直接监听,只能用 Vue.setsplice 替代。Vue3 使用 Proxy 完美解决了这个限制。

http://www.dtcms.com/a/604179.html

相关文章:

  • 用php做的网站用什么数据库wordpress重定向传递权重
  • 廊坊哪里有做阿里巴巴网站的电脑和手机同步编辑wordpress
  • 网站弹出广告gif出处做网站找那家公司好
  • 阿里云虚拟主机可以做几个网站吗市建设局领导名单
  • 增城区建设局网站wordpress图片批量上传
  • 西安制作网站的公司有校园兼职网站开发用例图
  • 芜湖中凡网站建设公司delphi 做直播网站
  • ftp网站怎么看后台的代码聊城网站优化网络推广
  • 深圳便宜做网站图像制作
  • 上海市建设安全协会网站一360温州建设监理协会网站
  • 网站开发公司名单湖南专业做网站公司有哪些
  • 中国新农村建设网站自己的网站在哪里找
  • 机票售票网站开发佛山做网站的公司哪家好
  • 哈尔滨大型网站建设陕西建设工程信息网站
  • 承德网站制作报价葫芦岛建设厅网站
  • 备案网站建设书门户网站建设调查问卷
  • 广元网站建设工作室公司网站怎么免费建
  • 北京网站建设成都公司学了lamp做网站就足够了吗
  • 徐州网站推广公司网站建设各部门职责策划
  • 官方网站作用深圳龙岗医院
  • 宅男做网站承德网站建设电话
  • 网站开发软件教程建设工程标准 免费下载网站
  • Apache局域网网站制作株洲企业关键词优化最新报价
  • 做快递单的网站会不会是骗人的成全视频在线直播观看
  • seo网站外包公司给wordpress公告
  • jsp网站开发文献网站建设都需要什么工具
  • 做直播的小视频在线观看网站潍坊高端网站建设价格
  • 厦门市保障性住房官网网站首页关键如何优化
  • 如何在卖家淘宝网站做产品链接广州建信网络有限公司
  • asp网站开发开题报告微信上怎么做网站