vue中使用element ui的el-table在el-table-column下使用slot插槽v-if条件渲染没生效或者混乱

这篇具有很好参考价值的文章主要介绍了vue中使用element ui的el-table在el-table-column下使用slot插槽v-if条件渲染没生效或者混乱。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue 引入element ui中的el-table组件时,在el-table-column下使用作用域插槽,通过v-if条件来动态显示某些元素,发现有的条目渲染没生效或者混乱。如:

       <el-table-column label="操作" align="center">
          <template slot-scope="scope">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-view"
                @click="handleView(scope.row)"
                v-if="status === 1"
              >
                查看
              </el-button>
              <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                @click="handleEdit(scope.row)"
                v-if="status === 2"
              >
                修改
              </el-button>
          </template>
        </el-table-column>

原因:vue虚拟dom机制,会尽量复用已存在相同节点元素而不会重新渲染,导致使用v-if没有达到预期效果

解决方法:使用div元素将slot插槽内容包裹起来,然后在div元素上加上:key="Math.random()",这样使插槽内容重新渲染文章来源地址https://www.toymoban.com/news/detail-513390.html

        <el-table-column label="操作" align="center">
          <template slot-scope="scope">
            <div :key="Math.random()">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-view"
                @click="handleView(scope.row)"
                v-if="status === 1"
              >
                查看
              </el-button>
              <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                @click="handleEdit(scope.row)"
                v-if="status === 2"
              >
                修改
              </el-button>
            </div>
          </template>
        </el-table-column>

到了这里,关于vue中使用element ui的el-table在el-table-column下使用slot插槽v-if条件渲染没生效或者混乱的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • el-table组件的el-table-column电脑端使用fixed属性固定,移动端不使用固定,怎么实现?

           要在电脑端使用 fixed 固定列,而在移动端不使用,可以使用 CSS 媒体查询结合 Vue 的动态绑定来实现。以下是一个示例代码:        在上面的示例中,我们使用 isDesktop 数据属性来判断当前设备是否为电脑端。通过监听窗口的 resize 事件,动态更新 isDesktop 的值。然后

    2024年02月15日
    浏览(37)
  • 【Vue】在el-table的el-table-column中,如何控制单行、单列、以及根据内容单独设置样式。例如:修改文字颜色、背景颜色

    用cell-style表属性来实现。在官网中是这样表述这个属性的。    在el-table中用v-bind绑定此属性。(v-bind的简写是:) data中的options数据为: 此时页面显示为:     在methods中声明cellStyle方法。让我们打印出各个参数看一下代表了什么。 控制台打印如下:     其实很好理解,

    2024年02月15日
    浏览(46)
  • element el-table-column 循环

    当table中表头太多了,然后不想一个一个写,可以用循环的方式写 先上个图 直接上代码 data数据

    2024年02月13日
    浏览(42)
  • vue使用element-ui,el-table不显示

    例如:新增了一个表格,按官网代码贴过来的,结果一直不显示 代码如下一模一样,其他数据正常显示,就表格不显示 其实版本库不一致导致的,贼坑,又不提示 先卸载element-ui安装一个低版本的element-ui就可以解决``

    2024年02月11日
    浏览(54)
  • vue使用Element UI时,el-table表格整行操作单选

    需求:表格复选修改为单选,只可选择一个;不满足条件的不可勾选;可进行整行操作 注意使用的方法. 需求由复选改为单选后, 左上角全选框要进行隐藏 ,复选框也变成单选框,这里是通过css样式进行调整的 勾选复选框的select和整行操作的row-click可以共用同一个方法,

    2024年02月14日
    浏览(37)
  • VUE+Element UI项目中使用el-table出现的内容块左右抖动问题解决方法

    el-table中出现的抖动问题 为了提高项目中组件的复用性,一般我们都会使用 v-if 或 v-show 加在 el-table-column 上来实现不同场景下页面内容的展示 现象描述 页面渲染出表格以及表格中的所有内容,当触发表格中的自定义点击事件或者切换tab页时,表格里面的单元格和内容行就会

    2024年02月06日
    浏览(44)
  • vue el-table-column 修改一整列的背景颜色

    目录 修改表头以及一整列数据的背景颜色,效果如下: 总结 修改表头以及一整列数据的背景颜色,效果如下: 修改表头背景颜色:在el-table绑定header-cell-style 修改一整列的数据背景颜色:在el-table绑定:cell-style=\\\"columnStyle\\\" 完整代码如下: 记录来源于需求,希望能帮助到你~

    2024年02月06日
    浏览(37)
  • Vue Element UI 中 el-table 树形数据 tree-props 多层级使用避坑

    实现效果: element官网提示设置tree-props为{children: ‘children’,hasChildren: ‘hasChildren’},data数据需要设置children和hasChildren属性,row-key也绑定了数据的唯一值变量id,但是 树形结构的第三级就是出不来 可以看到只有第二级,第三级并没有,于是查看了 数据格式 ,和官方要求的

    2024年02月02日
    浏览(73)
  • 【vue】element-ui、el-table使用V-for循环动态添加表头和数据

    参考链接 https://blog.csdn.net/xz1589155358/article/details/126597271

    2024年02月11日
    浏览(61)
  • Vue3 动态列 <el-table-column> 实现 formatter 的两种方法

    参考此篇文章 Vue3 动态列实现 第一种 以此为例:传递该行的wxUserInfo字段(对象)中的nickName 假设该行 {prop: \\\"wxUserInfo\\\", label: \\\"用户昵称\\\", minWidth: \\\"110\\\", align: \\\"center\\\", tooltip: true, resizable: true,}, 第二种方法 个人比较喜欢第二种,简单的东西就不要浪费时间。

    2024年02月13日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包