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

金坛建设局招标网站建设银行的网站用户名是什么问题

金坛建设局招标网站,建设银行的网站用户名是什么问题,劳务派遣好还是外包好,红色主题展馆设计Vue3的响应式原理解析 Vue2响应式原理回顾 // 1.对象响应化#xff1a;遍历每个key#xff0c;定义getter、setter // 2.数组响应化#xff1a;覆盖数组原型方法#xff0c;额外增加通知逻辑 const originalProto Array.prototype const arrayProto Object.create(orig…Vue3的响应式原理解析 Vue2响应式原理回顾 // 1.对象响应化遍历每个key定义getter、setter // 2.数组响应化覆盖数组原型方法额外增加通知逻辑 const originalProto Array.prototype const arrayProto Object.create(originalProto);[push, pop, shift, unshift, splice, reverse, sort].forEach(method {arrayProto[method] function () {originalProto[method].apply(this, arguments)notifyUpdate()}}) function observe (obj) {if (typeof obj ! object || obj null) {return}// 增加数组类型判断若是数组则覆盖其原型if (Array.isArray(obj)) {Object.setPrototypeOf(obj, arrayProto)} else {const keys Object.keys(obj)for (let i 0; i keys.length; i) {const key keys[i]defineReactive(obj, key, obj[key])}} } function defineReactive (obj, key, val) {observe(val) // 解决嵌套对象问题Object.defineProperty(obj, key, {get () {return val},set (newVal) {if (newVal ! val) {observe(newVal) // 新值是对象的情况val newValnotifyUpdate()}}}) } function notifyUpdate () {console.log(页面更新!) } vue2响应式弊端 响应化过程需要递归遍历消耗较大 新加或删除属性无法监听 数组响应化需要额外实现 Map、Set、Class等无法响应式 修改语法有限制 Vue3响应式原理剖析 vue3使用ES6的Proxy特性来解决这些问题。 function reactive (obj) {if (typeof obj ! object obj ! null) {return obj}// Proxy相当于在对象外层加拦截// http://es6.ruanyifeng.com/#docs/proxyconst observed new Proxy(obj, {get (target, key, receiver) {// Reflect用于执行对象默认操作更规范、更友好// Proxy和Object的方法Reflect都有对应// http://es6.ruanyifeng.com/#docs/reflectconst res Reflect.get(target, key, receiver)console.log(获取${key}:${res})return res},set (target, key, value, receiver) {const res Reflect.set(target, key, value, receiver)console.log(设置${key}:${value})return res},deleteProperty (target, key) {const res Reflect.deleteProperty(target, key)console.log(删除${key}:${res})return res}})return observed } //代码测试 const state reactive({foo: foo,bar: { a: 1 } }) // 1.获取 state.foo // ok // 2.设置已存在属性 state.foo fooooooo // ok // 3.设置不存在属性 state.dong dong // ok // 4.删除属性 delete state.dong // ok嵌套对象响应式 测试嵌套对象不能响应 // 设置嵌套对象属性 react.bar.a 10 // no ok添加对象类型递归 // 提取帮助方法const isObject val val ! null typeof val objectfunction reactive (obj) {//判断是否对象if (!isObject(obj)) {return obj}const observed new Proxy(obj, {get (target, key, receiver) {// ...// 如果是对象需要递归return isObject(res) ? reactive(res) : res},//...}避免重复代理 重复代理比如 reactive(data) // 已代理过的纯对象 reactive(react) // 代理对象 解决方式将之前代理结果缓存get时直接使用 const toProxy new WeakMap() // 形如obj:observedconst toRaw new WeakMap() // 形如observed:objfunction reactive (obj) {//...// 查找缓存避免重复代理if (toProxy.has(obj)) {return toProxy.get(obj)}if (toRaw.has(obj)) {return obj}const observed new Proxy(...)// 缓存代理结果toProxy.set(obj, observed)toRaw.set(observed, obj)return observed}// 测试效果console.log(reactive(data) state)console.log(reactive(state) state)✨原创不易还希望各位大佬支持一下\textcolor{blue}{原创不易还希望各位大佬支持一下}原创不易还希望各位大佬支持一下 点赞你的认可是我创作的动力\textcolor{green}{点赞你的认可是我创作的动力}点赞你的认可是我创作的动力 ⭐️ 收藏你的青睐是我努力的方向\textcolor{green}{收藏你的青睐是我努力的方向}收藏你的青睐是我努力的方向 ✏️ 评论你的意见是我进步的财富\textcolor{green}{评论你的意见是我进步的财富}评论你的意见是我进步的财富
http://www.huolong8.cn/news/50557/

相关文章:

  • 泰安网站建设价格厦门网站设计公司找哪家厦门小程序建设
  • 与网站开发相关的书籍wordpress5.2发布
  • 高端设计图网站丹东seo
  • 建设自己公司的网站首页网站优缺点分析
  • 建设银行客户端官方网站如何给wordpress添加关键词描述
  • 广东省路桥建设发展有限公司网站网站开发的重难点
  • 各种网站的区别长沙网站开发湖南微联讯点不错
  • 一个网站多久能做完云南火电建设公司网站
  • 免费企业网站建设word推荐坪地网站建设
  • 网站开发的意义163企业邮箱入口官网
  • 网站建设服务的广告曲阜文化建设示范区网站
  • 和17做网店一样的货源网站免费网页制作工具下载
  • 易企秀+旗下+网站建设国内做跨境电商的平台有哪些
  • wordpress 找站点河北建筑培训网首页
  • 品质网站建设商务网站建设与维护 ppt
  • 网站建设合同标的自己做网站要学什么软件
  • 静态网站开发一体化课程备案的博客网站可以做别的吗
  • 信融营销型网站建设北京传媒公司
  • 政协网站建设方案天元建设集团有限公司 刘洪顺
  • 做商业网站要交税吗广州seo推广优化
  • 网站建设管理制度购物网站的设计与实现论文
  • 博客网站的建设手机传奇手游发布网站
  • 淄博桓台学校网站建设哪家好网站建设进度规划
  • 网站项目功能需求清单wordpress做的学校网站
  • 清溪做网站学成在线网页制作
  • 网站配色案例分析买淘宝店
  • 怎么拥有网站的所有权简述从网站规划的角度常见的网站模式
  • 长沙网页制作模板的网站做展厅 参考什么网站
  • 安平做网站的电话wordpress悬浮音乐插件
  • 网站设计的价格wordpress网页加入音乐入口