Vue之slot

简单介绍

  • 是组件的一块HTML模板,这块模板显不显示、以及怎样显示父组件来决定。(显示不显示、怎样显示)。
  • 通过scoped slot可以获取row、column、$index、store的数据。传进去tableData,在table内部生成类似Excel的scope,因此,通过scope.row.date,可以读取每一行date。
  • el-table元素注入data对象数组后,在el-table-column 中用prop属性对应键名,label属性定义表格的列名。 例: 如果prop=“date”,那么取值为tableData[$index].date。

主要作用

  • 增强组件可扩展性。

匿名slot

//定义组件
<div class="myConponent">
	<slot></slot>
</div>
//使用方法
<my-component>
	<p>我就是slot替代的内容,可以放任何标签</p>
</my-component>

命名slot

//定义组件
<div class="myConponent">
	<slot name="mySlot"></slot>
</div>
//使用方法
<my-component>
	<p slot="mySlot">我就是slot替代的内容,可以放任何标签</p>
</my-component>


slot-scope信息

提供的引用内容中未提及Vueslot被划线的原因及解决办法。但通常在Vue里,slot被划线可能有以下原因及对应的解决办法: ### 原因 - **版本兼容性问题**:在Vue 2.x中使用的slot语法,在Vue 3.x有了新的语法(具名插槽和作用域插槽的写法变化),若代码未适配升级后的版本,IDE可能会将旧语法的slot划线提示。 - **语法错误**:比如slot的使用不符合语法规范,像具名插槽没正确命名,或者作用域插槽传使用错误等。 - **IDE配置问题**:IDE的Vue插件配置有误,或者插件版本过旧,不能正确识别Vueslot语法。 ### 解决办法 - **适配版本**:如果从Vue 2升级到Vue 3,要把slot语法更新为Vue 3的语法。例如,在Vue 2中具名插槽写法是 `<template slot="header">`,在Vue 3中要写成 `<template #header>`。 - **检查语法**:仔细检查slot的使用是否符合对应Vue版本的语法规范,保证具名插槽命名正确、作用域插槽传使用无误。 - **更新IDE插件**:确保IDE里的Vue插件是最新版本,并且配置正确。可以尝试重新安装或更新插件。 以下是Vue 2和Vue 3中slot的使用示例: #### Vue 2 ```vue <template> <div> <child-component> <template slot="header">这是头部插槽内容</template> <p>这是默认插槽内容</p> </child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent } }; </script> ``` #### Vue 3 ```vue <template> <div> <child-component> <template #header>这是头部插槽内容</template> <p>这是默认插槽内容</p> </child-component> </div> </template> <script setup> import ChildComponent from './ChildComponent.vue'; </script> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值