Vue提升:理解vue中的 slot-scope=“scope“

这篇具有很好参考价值的文章主要介绍了Vue提升:理解vue中的 slot-scope=“scope“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

slot是插槽,slot-scope=“scope“语义更加明确,相当于一行的数据,在实际开发中会碰到如下的场景

Vue提升:理解vue中的 slot-scope=“scope“

 这个工作状态是变化的,而我们就可以通过后端返回的具体值来判断这里应该显示什么样的内容,具体代码如下

    <el-table-column label="工单状态" prop="status">
          <template slot-scope="scope">
            <span style="margin-left: 10px">{{
              scope.row.status == "0"
                ? "待办"
                : scope.row.status == "1"
                ? "处置中"
                : "完成"
            }}</span>
          </template>
        </el-table-column>

Vue提升:理解vue中的 slot-scope=“scope“

 后端返回消息如下,status状态值为0就是代办,为1就是处置,为2就是完成

此外这里每行还有编辑,删除等功能,事件处理函数中的参数,scope.$index就是该行的下标,scope.row就是该行的数据所有消息对象,有了这两个参数我们就可以实现编辑(分配,转派,完工),删除功能,所以这个 slot-scope="scope"是非常重要的

如果有用过element-ui中的table组件,可能会发现有这么一个写法:

 

<template slot-scope="scope">

在实际的使用过程中,这种用法当然不仅仅局限于此,其他的地方也会用到。到底这里有什么特别之处呢?

我们看看普通的table用法:

 我们先说一说这个基础的用法里面,在el-table中,:data="tableData"是数据集,结构如下:

那么对于每一个el-table-column,我们只需要使用prop="date",就可以将该列的数据绑定为该数组所有的对象中的“date”属性,我们可以理解为对于tableData,这里始终取的是tableData[$index].date。

table按照tableData这个数组的长度来生成多少行,按照有多少个el-table-column来生成多少列。

现在我们可以看更高级的用法,也就是我们标题提到的<template slot-scope="scope">

    <el-table-column
      label="日期"
      width="180">
      <template slot-scope="scope">
        <i class="el-icon-time"></i>
        <span style="margin-left: 10px">{{ scope.row.date }}</span>
      </template>
    </el-table-column>

按照我们前面的理解,按照有多少个el-table-column来生成列,因此这里没有使用prop="date",生成的单元格也就是空白的一个单元格。

template(模版) 在这里属于一个固定用法: <template slot-scope="scope">

我们主要说一下这个scope是个什么东西,按照element上的提示:

通过 Scoped slot 可以获取到 row, column, $index 和 store(table 内部的状态管理)的数据

我们可以理解为:tableData是给到table的记录集,scope是table内部基于tableData生成出来的,我们可以用Excel描绘一下

我们传进去的tableData,在table内部生成了类似于Excel的scope,因此,通过scope.row.date,我们就可以读取到每一行中的date。

还有重要的一点,scope又并非是整个table,我们只是能通过scope.row获得当前的行数据,至于具体为什么,目前我还没有理解得很透彻。只是希望按照这个理解,能记住多点关于scope的使用。
总结:文章来源地址https://www.toymoban.com/news/detail-429223.html

slot-scope="scope" //取到当前单元格
scope.$index  //拿到当前行的index
scope.row  //拿到当前行的数据对象
scope.row.date  //是对象里面的data属性的值

到了这里,关于Vue提升:理解vue中的 slot-scope=“scope“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vue中的ajax和slot插槽

    在前后端分离项目中,解决跨域问题是一个常见的需求。下面列举了几种常用的跨域解决方法: CORS(跨域资源共享):这是最常用且推荐的跨域解决方案。通过在服务器端设置响应头,允许特定的源(域名、协议、端口)访问资源。在后端服务器上进行配置即可实现跨域请

    2024年02月10日
    浏览(46)
  • Vue中的Ajax 配置代理 slot插槽

    本案例需要下载 axios 库 npm install axios 配置参考文档 Vue-Cli devServer.proxy vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照

    2024年02月09日
    浏览(49)
  • element-UI的slot-scope指令

    在前端项目中,常常见到以下这种写法: 其中,表格的数据为: 在这种表单form嵌套在表格table的写法中,el-form-item的prop属性必须写成这样的: :prop=“‘list.’ + scope.$index + ‘.name’” 这是 elementui 规定的格式,渲染后的结果为 list.1.name。(索引值取决于当前用的是第几行记

    2024年02月15日
    浏览(44)
  • element-ui 自定义表头label(利用 :slot=“header“ slot-scope=“slot“)

    效果如下:  重点看这:  

    2024年02月21日
    浏览(36)
  • ElementUI的Form表单使用slot-scope=“scope“获取当前表格行数据实现数据回显、修改表单操作

    在写项目时,老师通过向后端发请求获得表格原来的数据来填充修改表单里的数据。 这是表格: 这是点击修改按钮后显示出来的修改表单: 但本地里都已经有这些数据了,就没必要再发一次请求,徒增服务器压力。 准备 可是该怎么获得当前行的数据填充上去呢?答案在

    2023年04月23日
    浏览(49)
  • 在Vue 3中,对于组件中的插槽(slots)生成进行了优化,以提高渲染性能和组件的更新速度。

    在Vue 3中,对于组件中的插槽(slots)生成进行了优化,以提高渲染性能和组件的更新速度。 在Vue 2中,每当一个插槽被渲染时,都会生成一个函数来创建对应的VNode节点。这意味着即使插槽内容保持不变,每次渲染时仍然会重新生成相同的VNode节点。 而在Vue 3中,通过使用新

    2024年02月12日
    浏览(49)
  • Vue-插槽(Slots)

    在Vue.js中,插槽是一种强大的功能,它允许你创建可重用的模板,并在使用该模板的多个地方插入自定义内容。 插槽为你提供了一种方式,可以在父组件中定义一些“插槽”,然后在子组件中使用这些插槽,插入自己的内容。 2.1 默认插槽(Default Slots) 这是最常见的插槽类

    2024年01月22日
    浏览(39)
  • Vue插槽 slot 标签

    Vue 插槽 slot 标签: 作用:让父组件可以向子组件指定的位置插入一段 html 结构,也属于一种组件之间的通信方式,适用于父传子  不使用插槽: 创建 List 组件,接收父元素传递的数据,用于显示分类列表。 在 Home 页面中引用 List 组件,并传递对应的数据。 注 :组件会根据

    2024年02月11日
    浏览(40)
  • Vue slot 插槽使用详解

    在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使我们能够更轻松地构建出优雅而高效的Web应用程序。

    2024年01月16日
    浏览(45)
  • vue知识点————插槽 slot

    slot 插槽 在父组件中引用的子组件 在父组件中写入百度 可在子组件slot插槽中展示出 父组件 子组件 父组件 子组件 这里父组件可以访问父组件的数据并且可在slot中展示到,不可以在父组件中访问子组件的数据,就相当于父组件百度—{{ user.name }}{{ url }} 这里的url是访问不到的

    2024年02月09日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包