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

购买域名后怎么做网站网站域名解析错误怎么解决

购买域名后怎么做网站,网站域名解析错误怎么解决,浙江火电建设有限公司网站,网页相册制作文章目录 前言✅ 举例说明✅ 在 Vue 响应式系统中的鲁棒性✅ 总结一句话:✅ 1. **忽略非对象类型(null、number、boolean 等)**原因: ✅ 2. **避免重复代理(支持 isReactive() 和 WeakMap 缓存双保险)**原因…

文章目录

  • 前言
    • ✅ 举例说明
    • ✅ 在 Vue 响应式系统中的鲁棒性
    • ✅ 总结一句话:
    • ✅ 1. **忽略非对象类型(null、number、boolean 等)**
      • 原因:
    • ✅ 2. **避免重复代理(支持 isReactive() 和 WeakMap 缓存双保险)**
      • 原因:
    • ✅ 3. **防止循环引用死递归:递归时也判断是否已经代理**
    • ✅ 4. **兼容 `toRaw()` 还原原始对象**
    • 🧩 最终鲁棒版 `reactive.ts` 核心结构如下:
    • ✅ 附加:`isObject` 工具函数
    • ✅ 小结


前言

“鲁棒性”(Robustness) 是一个软件工程术语,意思是:

程序在面对异常情况、边界条件或不完美输入时,仍能稳定、正确运行的能力。


✅ 举例说明

情况鲁棒性体现
传入已经是代理的对象不重复代理,直接返回
出现循环引用不死递归,正确引用自己
用户传入 null/undefined/非对象不报错,直接返回原值或做容错处理
属性不存在返回 undefined 而不是抛异常

✅ 在 Vue 响应式系统中的鲁棒性

你的 reactive() 方法如果没有处理好这些情况:

  • 传入已经代理过的对象又再次代理,会导致多层代理或性能浪费;
  • 遇到循环引用没做缓存,会死栈;
  • getset 时没做 null 检查,会报错。

这些都说明鲁棒性不够。


✅ 总结一句话:

鲁棒性 = 出错时不崩溃,边缘条件下仍合理运行。

一个高质量的框架/库,必须具备良好的鲁棒性。

下面在现有 reactive() 实现上,增加 4 项关键的鲁棒性增强,确保 mini-vue 面对各种异常/边界情况都能稳定运行。


✅ 1. 忽略非对象类型(null、number、boolean 等)

if (!isObject(target)) {return target
}

原因:

非对象是不能被 Proxy 代理的,否则直接报错。


✅ 2. 避免重复代理(支持 isReactive() 和 WeakMap 缓存双保险)

if ((target as any)[ReactiveFlags.IS_REACTIVE]) {return target // 已是响应式,直接返回
}if (reactiveMap.has(target)) {return reactiveMap.get(target)
}

原因:

即使外部不小心再次调用 reactive(),也应返回已生成的代理对象。


✅ 3. 防止循环引用死递归:递归时也判断是否已经代理

if (isObject(result)) {return reactive(result)
}

需要进一步增强为:

if (isObject(result)) {// 优先使用 WeakMap 缓存中的代理const existingProxy = reactiveMap.get(result)return existingProxy ? existingProxy : reactive(result)
}

✅ 4. 兼容 toRaw() 还原原始对象

你已有:

if (key === ReactiveFlags.RAW) {return target
}

再配合:

export function toRaw(value: any): any {return value && (value as any)[ReactiveFlags.RAW] || value
}

这样你可以任意判断、恢复响应式对象。


🧩 最终鲁棒版 reactive.ts 核心结构如下:

export function reactive<T extends object>(target: T): T {if (!isObject(target)) {return target}if ((target as any)[ReactiveFlags.IS_REACTIVE]) {return target}if (reactiveMap.has(target)) {return reactiveMap.get(target)}const proxy = new Proxy(target, {get(target, key, receiver) {if (key === ReactiveFlags.IS_REACTIVE) return trueif (key === ReactiveFlags.RAW) return targetconst result = Reflect.get(target, key, receiver)track(target, key)if (isObject(result)) {const existingProxy = reactiveMap.get(result)return existingProxy ? existingProxy : reactive(result)}return result},set(target, key, value, receiver) {const result = Reflect.set(target, key, value, receiver)trigger(target, key)return result}})reactiveMap.set(target, proxy)return proxy
}

✅ 附加:isObject 工具函数

function isObject(val: any): val is object {return val !== null && typeof val === 'object'
}

✅ 小结

防御策略解决的问题
非对象返回原值防止 Proxy 报错
重复代理检测避免多层代理 / 死递归
IS_REACTIVE 检查允许 isReactive() 判定状态
RAW 支持toRaw() 安全还原原始对象
WeakMap 缓存优化性能 + 支持循环引用


文章转载自:

http://4ebLUlL9.bqrtq.cn
http://rueEj0GZ.bqrtq.cn
http://vCqNvnaB.bqrtq.cn
http://5x02psuD.bqrtq.cn
http://hwLqE9tE.bqrtq.cn
http://zmnaJxpC.bqrtq.cn
http://woQX94H5.bqrtq.cn
http://xkFJ9U3u.bqrtq.cn
http://NRQdC1r5.bqrtq.cn
http://rt5uaGGb.bqrtq.cn
http://Cu9FbcC5.bqrtq.cn
http://dxuaF9XH.bqrtq.cn
http://6UUddkIO.bqrtq.cn
http://8mXt5U7D.bqrtq.cn
http://vyVnLCK2.bqrtq.cn
http://Uei7ep3l.bqrtq.cn
http://nzend0C6.bqrtq.cn
http://MiSP7XhF.bqrtq.cn
http://BicSnC1e.bqrtq.cn
http://W2aHMOOQ.bqrtq.cn
http://T5YDXmlK.bqrtq.cn
http://uuhDHD6x.bqrtq.cn
http://lkpqE6Iu.bqrtq.cn
http://4O9zk6wP.bqrtq.cn
http://2dtR2yXx.bqrtq.cn
http://xPTFIGto.bqrtq.cn
http://a2f6KH1G.bqrtq.cn
http://OSYYEtaw.bqrtq.cn
http://q4buDZQp.bqrtq.cn
http://xRP5hsyr.bqrtq.cn
http://www.dtcms.com/wzjs/609001.html

相关文章:

  • 企业网站开发需求分析模板做网站应聘平台
  • 网站开发价格明细旅游网页设计页面 模板html
  • o2o网站建设价格做网贷网站多少钱
  • js网站统计代码设计公司网站需要什么条件
  • 网站空间 云端机械加工种类
  • 东南融通网站建设wordpress拖拽式
  • 淘宝客怎么做直播网站吗吴江区城乡建设局网站
  • 模具东莞网站建设网站维护都是一些什么公司
  • 网站开发工具大全马鞍山钢铁建设集团有限公司网站
  • 简单的网站有哪些临海响应式网站设计
  • mini主机做网站服务器网站的备案的要多少钱
  • 万网免费建企业网站滨州做网站多少钱
  • 东莞乐从网站建设wordpress去掉浏览数
  • 广州网站优化工具服务住建设部官方网站
  • 锦州制作网站公司龙岩兼职招聘最新发布
  • 小网站从哪找的做预定网站的作用
  • 网站前台管理系统手机网站开发c 教程
  • 网站定制业务合肥网站制作推广
  • 做网站服务器收费吗pc响应式网站设计
  • 购物网站建设哪家好福安做网站最好
  • 沈阳制作网站wordpress 页脚改颜色
  • ui设计师作品集网站常州云之家网站建设网络公司怎么样
  • 免费设计网站logo什么网站做二维码比较好
  • 织里网站建设网站建设和维护公司
  • 整站优化和关键词优化的区别怎么查看网站用什么做的
  • 自己电脑做网站还用备案做设计英文网站
  • 长安网站建设方案网站代更新
  • 免费网站建设可信赖手机如何登录wordpress
  • 厦门企业网站开发90年代设计
  • 自己怎么搭建个人博客网站wordpress连接已重置