以下仅为个人理解,若有不妥请留言评论区
v-slot 指令自 Vue 2.6.0 起被引入,在接下来所有的 2.x 版本中 slot 和 slot-scope attribute 仍会被支持,但已经被官方废弃且不会出现在 Vue 3 中
slot | 1.用于设置标签的属性值(slot=“title”), 2.用于设置标签文本显示的位置(slot=“header”) |
---|---|
slot-scope | 作用域插槽,绑定的是子组件的数据 |
v-slot | 1.取代了slot,slot-scope 2.只能添加在<template>上,(只有一种情况例外) |
代码示例
slot
<el-menu-item v-if="!navMenu.children" :key="navMenu.id" :index="navMenu.id + ''" @click="itemClick(navMenu)" >
<span slot="title">{{ navMenu.name }}</span>
</el-menu-item>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="save">确 定</el-button>
</span>
slot-scope
<el-table-column label="修改时间" width='150' align='center'>
<template slot-scope="scope">{{scope.row.modifyTime|formtterDate}}</template>
</el-table-column>
v-slot
<Test>
<template v-slot:header="scope">//v-slot定义作用域插槽
<div>
<p> {{scope.msg}} </p>
</div>
</template>
</Test>