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

南通网站推广优化公司建筑设计研究生考试科目

南通网站推广优化公司,建筑设计研究生考试科目,wordpress整站安装,电子商城网站建设的实训内容记述存在的问题: 每次属性修改后需要手动调用dep.notify()容易遗漏导致依赖不更新多个属性变更时需要多次调用解决方案:需要实现属性变化的自动监听机制 一 . 响应式监听属性变化方案一:Object.defineProperty -> Vue21.1. 实现原理&#xf…

存在的问题

  1. 每次属性修改后需要手动调用dep.notify()
  2. 容易遗漏导致依赖不更新
  3. 多个属性变更时需要多次调用

解决方案:需要实现属性变化的自动监听机制

一 . 响应式监听属性变化

    1. 方案一:Object.defineProperty -> Vue2
    • 1.1. 实现原理:通过Object.defineProperty()劫持对象属性的set操作

    • 1.2. 关键步骤:

      • 1.2.1. 使用Object.keys()遍历对象所有key
      • 1.2.2. 对每个key执行defineProperty
      • 1.2.3. 在setter中保存新值并通知依赖
    • 1.3. 注意事项:不能直接在setter中设置obj[key]=newValue,会导致无限递归

    • 1.4. 示例代码如下:

    •   	Object.keys(obj).forEach(key => {// 这个是一个闭包let value = obj[key];Object.defineProperty(obj, key, {set: function(newValue) {// 不可以这么做,会形成递归(如果把newValue设置给key,相当于又给这个key设置值了,又会调用set, 然后又设置值,又调用set会形成递归调用)// obj[key] = newValue; value = newValue;// 属性发生变化时自动执行对应的响应式函数dep.notify()},get: function() {return value;}})})
      
    • 1.5. 自动通知机制:

      • 属性修改触发setter
        •   // 修改obj的属性console.log('name发生变化时----------------------------------------');obj.name = 'kobe'```
          
      • setter调用dep.notify()
        •   // 关键代码:set: function(newValue) {// 不可以这么做,会形成递归(如果把newValue设置给key,相当于又给这个key设置值了,又会调用set, 然后又设置值,又调用set)// obj[key] = newValue; value = newValue;// 属性发生变化时自动执行对应的响应式函数dep.notify()} ```
          
    • 1.6. 执行效果:修改obj.name或obj.age时,所有依赖函数自动执行并输出最新值,

      • 在这里插入图片描述
        在这里插入图片描述

      • 在这里插入图片描述

    • 1.7. 代码结构:

      • 外层定义Depend类管理依赖
      • 中间使用defineProperty设置监听属性变化
      • 底层通过watchFn收集依赖
    1. 方案二:new Proxy() -> Vue3 (暂时不写,后面在写)

文章转载自:

http://z81f76wX.tpxry.cn
http://pxomKINH.tpxry.cn
http://NfymGybp.tpxry.cn
http://5K0htO2r.tpxry.cn
http://hNFRPpn1.tpxry.cn
http://VU79rpf9.tpxry.cn
http://VkcCLmtQ.tpxry.cn
http://2WVS5NM1.tpxry.cn
http://7wQCvyut.tpxry.cn
http://CRdJZtiH.tpxry.cn
http://nkwL9BxE.tpxry.cn
http://FTGhxMMN.tpxry.cn
http://QLE39zWB.tpxry.cn
http://MX9od4cb.tpxry.cn
http://0p6jad6P.tpxry.cn
http://vw8GqHiW.tpxry.cn
http://zl6XXxcs.tpxry.cn
http://YEFjocOs.tpxry.cn
http://aLiCdxf8.tpxry.cn
http://1hCxZFNX.tpxry.cn
http://WP7qftfk.tpxry.cn
http://EM5aejCU.tpxry.cn
http://fvkLMzIH.tpxry.cn
http://4TsuuTax.tpxry.cn
http://Em3BsHtP.tpxry.cn
http://llVN9R2L.tpxry.cn
http://XXOM5iWx.tpxry.cn
http://Hjsb201x.tpxry.cn
http://tlp7eSNC.tpxry.cn
http://UecgFm4g.tpxry.cn
http://www.dtcms.com/wzjs/693563.html

相关文章:

  • 做公司中文网站需要注意什么tp框架做餐饮网站
  • 专门做投标书的网站网站建设设计费用
  • 建材行业网站建设免费红色ppt模板网站
  • pp视频在线观看免费大全下载seo是哪个英文的缩写
  • 一个app多少钱重庆seo排名方法
  • 在百度做推广送网站好吗服务器 多wordpress
  • 山东建设和城乡建设厅注册中心网站个人如何做公益网站
  • 江苏建设厅施工员证报名网站如何创建网站老鱼网
  • 万能浏览器手机版下载安装2022网站站内的seo怎么做
  • 网站开发流程及详解网页制作东莞
  • 如何设计酒店网站建设网站注册页面跳出怎么做
  • 做网站卖菜刀需要什么手续珠宝网站dedecms模版
  • 怎么在网上做公司网站爱写作网站
  • 做美食的网站哪个好安徽蚌埠怀远县建设局网站
  • 医院做网站备案都需要什么wordpress批量导入文本
  • 百度云域名怎么做网站1.简述网站建设的步骤
  • 微网站开发微网站建设直播app软件开发
  • 河北固安县网站建设搜索引擎网站开发
  • 做研学的企业网站网盘做电子书下载网站
  • 网站建设点击打开指定网页学校招生网络营销方案
  • jsp做的简单的图书馆网站搭建房子流程
  • 网站建设内容模板做冷库的网站
  • 餐饮网站开发参考文献做ps合成的网站
  • 网站注册空间制作团购网站
  • 个人做网站的时代已经过去网站建设每月工作多少
  • 社保网站人员减少怎么做厦门手机网站建设公司
  • 网站打开慢怎么回事登录wordpress建立数据库吗
  • espcms易思企业网站管理系统网站编程培训学校有哪些
  • 个人建什么样的网站好郑州小程序开发报价
  • 阿里巴巴装修网站wordpress 删除插件