赞
踩
记录一次无脑copy代码发现的新知识哈哈哈
新知识自己要去查阅相关知识学习,这里我没有描述噢
在el-table中的列el-table-column使用了多个button时,每个button都添加了<template slot-scope="scope">标签,导致只有其中一个button会展示。如:图一
问题代码如下:
- <el-table>
- ...
- <el-table-column fixed="right" align="center" width="160" label="操作">
- <template slot-scope="scope">
- <el-button type="text" @click="update(scope.row.id)">编辑</el-button>
- </template>
- <template slot-scope="scope">
- <el-button type="text" @click="select(scope.row.id, '1')">查看</el-button>
- </template>
- <template slot-scope="scope">
- <el-button type="text" @click="deleteInfo(scope.row.id)">删除</el-button>
- </template>
- <template slot-scope="scope">
- <el-button type="text" @click="examin(scope.row.id)">审核</el-button>
- </template>
- </el-table-column>
- ...
- </el-table>
图一:
上述代码页面效果只会渲染最后一个 template(即“审核”按钮),因为前面的 template 被后面的覆盖了 。
在el-table中的列el-table-column使用了多个button时,每个button都添加了<template slot-scope="scope">标签,导致只有其中一个button会展示:只展示“审核”按钮
通过查阅资料发现 :
在 Vue 和 Element UI 中,不能在同一个 el-table-column 中直接放置多个 template 标签,除非每个 template 标签都使用了不同的具名插槽。通过使用具名插槽(slot)区分它们。非必要不使用。我这里的业务没有特殊的需求,因此没必要使用具名插槽。
对于同一个 el-table-column,通常不需要使用具名插槽,因为每一列通常只包含一个模板内容。
修改代码:el-table-column 中只定义一个template,并将所有的button都放在这一个template中
- <el-table>
- <el-table-column fixed="right" align="center" width="160" label="操作">
- <template slot-scope="scope">
- <el-button type="text" @click="update(scope.row.id)">编辑</el-button>
- <el-button type="text" @click="select(scope.row.id, '1')">查看</el-button>
- <el-button type="text" @click="deleteInfo(scope.row.id)">删除</el-button>
- <el-button type="text" @click="examin(scope.row.id)">审核</el-button>
- </template>
- </el-table-column>
- </el-table>
修改代码后页面效果 :
具体什么是插槽和具名插槽(slot),如何和template配合使用建议自己去查阅资料学习噢。
插槽(Slots)
插槽是Vue.js中一种非常强大和灵活的功能,用于在组件之间传递内容。它允许父组件在其模板中预留出一些位置,并且在运行时动态地将任意内容插入这些位置。这种机制使得组件更具可复用性和灵活性,能够以一种通用的方式接受输入内容。
具名插槽(Named Slots)
<slot>
标签,并为每个插槽分配一个唯一的name
属性。<template>
标签,并通过v-slot
指令或#
指令来指定要插入的具名插槽的名称。然后,在<template>
标签内部放置要插入的内容。总结
插槽和具名插槽是Vue.js中用于组件间内容传递的重要机制。插槽允许父组件向子组件传递任意内容,而具名插槽则允许父组件更精确地控制内容的插入位置。这两种机制都增强了Vue组件的复用性和灵活性,使得开发者能够更高效地构建复杂的用户界面。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。