el-table自定义表头数据不更新

我的表头是有三层的,中间一层展示对应的数据,所以需要自定义,官方的文档显示的写法如下:

复制代码
<el-table-column>
  <template slot="header">
    <div>{{dayData.supply}}、{{dayData.use}}</div>
  </template>
<el-table-column>

显示是显示出来了,但是数据是最开始默认的,不会更新,后来我搜索到方法,说讲将slot="header" 改成#header,改了之后的确可以显示了。

复制代码
<el-table-column>
  <template #header>
    <div>{{dayData.supply}}、{{dayData.use}}</div>
  </template>
<el-table-column>

但是为什么会出现这个情况呢:原来是Vue在编译模板时,会对静态内容进行优化,将其提升为静态渲染,以提高性能。当我们用slot="header"来定义表头时,Vue会将其视为静态内容,不会进行响应式更新。而使用#header的方式,会将表头内容作为一个动态插槽处理。动态插槽会被Vue处理为响应式的内容,当数据变化时,Vue会重新渲染插槽内容,并将其更新到对应的位置上。这样就实现了自动更新。

相关推荐
半个烧饼不加肉10 分钟前
JS 底层探究--上下文
开发语言·javascript·ecmascript
Hoey36 分钟前
虚拟 DOM 和 DIFF 算法
前端·vue.js
无风听海1 小时前
PKCE 的 S256 算法深度剖析:从协议设计到密码学原理
javascript·网络·算法·密码学
小新1101 小时前
vue实战项目 计算器
前端·javascript·vue.js
老毛肚1 小时前
jeecgboot vue 路由 拆分01
前端·javascript·typescript
神仙别闹1 小时前
VUE框架 + Element UI + Node 模拟打印机的 Web 即时打印
前端·vue.js·ui
如果超人不会飞1 小时前
TinyVue图标使用完全指南
vue.js
西部荒野子1 小时前
Zustand 状态管理规范:别让轻量状态变成隐形通知风暴
前端·javascript
之歆2 小时前
Day04_ES6完全指南:从入门到精通的现代化JavaScript开发
前端·javascript·es6