关于el-table header 插槽踩坑记录

起因是因为我们公司的产品想往这个table 表头上面添加一个筛选的popver

一开始看到这个我还不以为然,不就是往el-table 的header slot加一个popver就可以了么,太简单了。table是根据业务二次封装的,不好直接往上面丢业务代码,所以向父组件暴露一个slot。

加上去之后傻眼🙄了

好像跟想象中的效果不一样?后面思考了很多方向,样式穿透,视图刷新...等,发现都不是这些问题。直到今天网上查询资料才发现,可能是vue2的slot 跟饿了么的el-checkbox存在兼容问题

vue3 的效果是正常的

解决办法

  1. 使用原生的input checkbox 去实现el-checkbox的效果

2. 使用vue3 #slot的写法。

因为vue各个版本的slot语法各不相同,所以这里总结一下

版本 父组件写法(具名插槽) 父组件写法(作用域插槽) 子组件写法
vue2.5更早 <template slot="header"> <template slot="header" slot-scope="scope"> <slot name="header"></slot>
vue2.6+ <template v-slot:header> <template v-slot:header="scope"> <slot name="header"></slot>
vue3 <template #header> <template #header="scope"> <slot name="header"></slot>
相关推荐
上单带刀不带妹几秒前
Vue3递归组件详解:构建动态树形结构的终极方案
前端·javascript·vue.js·前端框架
90后的晨仔22 分钟前
📦 Vue CLI 项目结构超详细注释版解析
前端·vue.js
白开水都有人用25 分钟前
VUE目录结构详解
前端·javascript·vue.js
if时光重来33 分钟前
axios统一封装规范管理
前端·vue.js
tianzhiyi1989sq1 小时前
Vue项目中的AJAX请求与跨域问题解析
前端·vue.js·ajax
结城1 小时前
Vue 3 响应式系统中的 effectScope、watchEffect、effect 和 watch 详解
前端·javascript·vue.js
90后的晨仔1 小时前
🚀 零构建!教你通过 CDN 快速使用 Vue 3(含模块拆分 + Import Maps 实战)
前端·vue.js
90后的晨仔1 小时前
🧭 Vue CLI 项目运行时自动打开浏览器的实现方法【保姆级教程】
前端·vue.js
90后的晨仔2 小时前
从 Vue CLI 到 Vite:逐步指南
vue.js
前端开发爱好者2 小时前
国外疯传的 React UI 动效组件库!Vue3 版正式发布!
前端·vue.js·react.js