Element Plus A Vue.js 3.0 UI Library.
含有 heder
的示例代码中,设置 header
的方式是采用的已废弃的 slot
attribute 语法。html
<div slot="header"> //... </div>
在向具名插槽提供内容的时候,在 <template>
元素上使用 v-slot
指令,并以 v-slot
的参数的形式提供其名称。vue
<el-card shadow="shadow"> <template v-slot:header> // ... </template> <div v-for="o in 4" :key="o" class="text item"> {{'列表内容 ' + o }} </div> </el-card>
备注:v-slot:header
能够简写成 #header
。ide
同上,使用具名插槽的地方采用的是已废弃的 slot
attribute 语法。ui
<template slot="title"> <i class="el-icon-location"></i>导航一 </template> <span slot="title">分组一</span> ...
在向具名插槽提供内容的时候,在 <template>
元素上使用 v-slot
指令,并以 v-slot
的参数的形式提供其名称。spa
<template v-slot:title> <i class="el-icon-location"></i> <span>导航一</span> </template> <span slot="title">分组一</span> ...
目前官网状态是控制台报错, 页面空白。
使用 scoped-slot 自定义数据项的示例代码中,使用了已被 3.0 废弃的 slot-scope
attribute 的语法。code
... <p>使用 scoped-slot 自定义数据项</p> <div style="text-align: center"> <el-transfer v-model="value4" filterable :left-default-checked="[2, 3]" :right-default-checked="[1]" :titles="['Source', 'Target']" :button-texts="['到左边', '到右边']" @change="handleChange" :data="data"> <!-- 下面的的做用域插槽语法被遗弃 --> <span slot-scope="{ option }">{{ option.key }} - {{ option.label }}</span> ... </el-transfer> </div>
使用带值的 v-slot
来定义咱们提供的插槽 prop 的名字。component
<p>使用 scoped-slot 自定义数据项</p> <div style="text-align: center"> <el-transfer v-model="value4" filterable :left-default-checked="[2, 3]" :right-default-checked="[1]" :titles="['Source', 'Target']" :button-texts="['到左边', '到右边']" @change="handleChange" :data="data"> <!-- 下面的是修改后的语法 --> <template v-slot:default="slotProps"> <span>{{ slotProps.option.key }} - {{ slotProps.option.label }}</span> </template> ... </el-transfer> </div>
上边代码中的做用域插槽语法能够简写成参数解构的形式:htm
<template v-slot="{ option }"> <span>{{ option.key }} - {{ option.label }}</span> </template>
备注:由于源码实现中设置的 key
为 option
,因此参数必须为 { option }
。blog
目前官网状态是控制台报错, 页面空白。
scoped-slot
去设置缩略图模版同上,使用 scoped-slot 自定义数据项的示例代码中,使用了已被 3.0 废弃的 slot-scope
attribute 的语法。ip
<div slot="file" slot-scope="{file}"> ... <div>
使用带值的 v-slot
来定义咱们提供的插槽 prop 的名字。
<template v-slot:file v-slot="{ file }"> ... </template>