惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
S
SegmentFault 最新的问题
月光博客
月光博客
Latest news
Latest news
博客园 - Franky
T
Threat Research - Cisco Blogs
有赞技术团队
有赞技术团队
博客园_首页
T
The Exploit Database - CXSecurity.com
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
S
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
爱范儿
爱范儿
Security Latest
Security Latest
Scott Helme
Scott Helme
博客园 - 聂微东
T
Tor Project blog
美团技术团队
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
B
Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
G
Google Developers Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
AWS News Blog
AWS News Blog
Jina AI
Jina AI
Vercel News
Vercel News
小众软件
小众软件
T
Tenable Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Forbes - Security
Forbes - Security
aimingoo的专栏
aimingoo的专栏
O
OpenAI News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
AI
AI

博客园 - 彭成刚

OmniVoice 记录 我觉得音色还原还不错 voiceclone-env 记录 vscode pwsh 全选快捷键 ctrl+a (powershell) ai专属使用 aitree 命令 ai配合重要命令 powershell vscode code $PROFILE 备份,配合conda使用vscode $setHideObjProp 设置js json对象属性 隐藏变量 不可枚举,post的时候不带这个变量 GPT-SoVITS 环境搭建及应用 回车小问题 vscode markdown 开始几次回车不好使 markdown.extension.onEnterKey miniconda 使用记录 json 格式化 (notepad++/插件/插件管理/JsonTools | JsonViewer)有快捷键,注意key要有双引号 + 176个插件介绍 Service workers 缓存导致 3000端口占用 解决方案 Unregister - FossFLOW iview table 单行显示文字 默认key 文字超出宽度 显示... 加tip cut-text2.vue configQueryListFunc.js 命令行合并图片成为pdf `magick *.jpg o.pdf` vue2 自动格式化 函数名和括号直接没有空格了 eslint爆红,解决方案,函数名+空格+() vscode 设置 flex gap 对老版本浏览器兼容 - "flex-gap-polyfill": "^1.0.4", 老版 对 vue2 iview 打包失败的解决方案 [软件推荐] 手机同步电脑 PandaControl 开发安卓app 截屏用的 Multi-Layer Perceptron.xlsx 讲明白ai底层本质 pdfjs-3.11.174-legacy-dist.zip 最后一个cdn版本,每次要升级pdfjs 都是这个坑,中间件不支持mjs,但是国产化那个老浏览器媲美ie6 做了一个卷子去底的程序 python-clear-paper [ai问答] js对象 某个属性找到父节点 __parent__ 一键注入函数 buildTreeRelations [精品] npm 内网离线安装包 从缓存本地安装, .tgz安装失败时候,用这个cache方案 三次贝塞尔曲线 一直想要一个 曲线箭头,先AI出个代码先存着。 http-server-o.bat 最方便启动当前目录的index.html [记录] 多文件上传BUG解决记录-选择文件后-修改本地文件名-点击上传失败 的解决过程 vscode 查看全局包函数源码 没安装插件 - 快速跳转第三方库的函数源码 - 在资源管理器视图中显示 自定义快捷键 Alt+Shift+Z vscode vue2项目 自定义 abc类型 自动提示 3种提示方式 分别是 abc this.abc window.abc vscode 提交 github 的 git提交 记得设置 proxy - 基础知识 阻止连点小函数 if(islock()) return vue 双向绑定 对象初始化 不替换指针 用 Object.assign(app.value.modalAddWan, $app.modalAddWan) lunacy 单机离线免费 ui设计工具 平替 figma sketch [工具推荐] 双击最大化 软件右边留出一些空白 MaxMax 软件推荐 [推荐] GLM-4.7 智谱 Agentic Coding AI开发 环境安装 vibe coding 鼠标有小圈圈在转,原因是安全中心在扫描你的程序,关闭扫描方案 右下角广告 查看pid 映射是哪个程序弹框 Process Explorer 我发现我就是太善良了,总愿意相信有免费的api(AI) 软件推荐:Beyond.Compare.v3.3.13.18981 文本对比软件 临时忽略 config.js git命令 node_modules 软连接 win11 mklink /D 两个项目共享一个库 需求:两个分支,两套代码同时修改 iview table 排序 columns 里面写 sortable: 'custom' 不要写 sortable: true 不然会进行二次内部排序序号等 字段。 vue2 重置 data方法 $data $options.data.call(this) vue中 先写 函数调用 再写 函数定义的 小技巧 function caller () {} copy-used-css 代码段 snippet,将指定节点的计算样式获取下拉 获取tailwind网页样式成原生样式 Syntax Error: TypeError: eslint.CLIEngine is not a constructor 解决方案 Comment Anchors [vscode插件推荐] 注释跳转 ANCHOR[id=锚点] LINK path/file.vue#锚点 写了一个undefind 的bug ['',null,undefined].includes(unName) 应该是 typeof unName === 'undefined' pad开发bug vue2 hooks useInnerHeight.vue 解决Table高度实时更新 vscode 左侧栏 显示隐藏 ctrl+b 查看:切换主侧栏可见性 View: Toggle Primary Side Bar Visibility
columns 内部watch columns, 又修改了columns内部 死循环bug 导致内存溢出 tables.vue 重点解决代码 let res = { ...item }
彭成刚 · 2026-07-02 · via 博客园 - 彭成刚

columns 内部watch columns, 又修改了columns内部 死循环bug 导致内存溢出 tables.vue 重点解决代码 let res = { ...item }

问题

table props 引入 columns
watch 了 columns,然后又对columns内部进行了改写
然后columns变动了,又被watch了,进入了死循环

问题2

开发环境不是马上发现,有触发条件。然后开发环境,还有一个dev保护,发现死循环就给踢了,
但是线上环境就直接卡死了。开始以为是接口调用比较多,后来发现,接口合并后还有这个问题,
才继续排查。

解决

原始代码

handleColumns (columns) {
      this.insideColumns = columns.map((item, index) => {
        let res = { ...item }
        if (res.editable) res = this.suportEdit(res, index)
        if (res.key === 'handle') res = this.surportHandle(res)
        if (res.key === this.nameKey) res = this.surportName(res)
        if (res.key === 'index') res = this.surportIndex(res)
        if (res.key === 'status') res = this.supportStatus(res)
        return res
      })
    },

解决代码

handleColumns (columns) {
      this.insideColumns = columns.map((item, index) => {
        let res = { ...item } // <-- 这个对象进行展开
        if (res.editable) res = this.suportEdit(res, index)
        if (res.key === 'handle') res = this.surportHandle(res)
        if (res.key === this.nameKey) res = this.surportName(res)
        if (res.key === 'index') res = this.surportIndex(res)
        if (res.key === 'status') res = this.supportStatus(res)
        return res
      })
    },