scope=“scope“和作用域插槽

2023-11-05

试试目录

1.之前的使用

在这里插入图片描述

父组件:

<template>
  <div>
    <child-component>
      <template scope="scope">
        <p>{{ scope.parentValue }}</p>
      </template>
    </child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      parentValue: 'Hello, child!'
    };
  }
};
</script>

子组件 (ChildComponent.vue):

<template>
  <div>
    <slot :parentValue="parentValue"></slot>
  </div>
</template>

<script>
export default {
  data() {
    return {
      parentValue: ''
    };
  }
};
</script>

在上面的示例中,父组件使用标签包裹了一个标签,并在中定义了一个插槽。在插槽中,使用{{ scope.parentValue }}来显示父组件传递的值。

子组件中使用标签来定义插槽,并通过:parentValue="parentValue"将子组件中的parentValue属性传递给插槽。

通过这种方式,父组件可以将数据传递给子组件的插槽,并且子组件可以在中接收和使用这些数据。

slot
vue2.6.0之前使用,现已经是被废弃的,2.6.0之后新增v-slot替代

用于标记往哪个具名插槽中插入子组件内容。

<body>
     <div id="app">
        <slot-test>插槽的使用</slot-test>
		</div>
</body>

<script>
       Vue.component('slot-test',{
            template:`<div>
                <slot></slot>
                </div>`
        });
</script>

slot-scope
vue2.6.0之前使用,现已经是被废弃的,2.6.0之后新增v-slot替代

用于将元素或组件表示为作用域插槽。attribute 的值应该是可以出现在函数签名的参数位置的合法的 JavaScript 表达式。这意味着在支持的环境中,你还可以在表达式中使用 ES2015 解构。它在 2.5.0+ 中替代了 scope。

  <div id="app">
        <!-- 需求在视图上显示firstname的值在不改变组件的插槽内容 -->
        <!-- 1.在字符串模板中为需要访问的插槽绑定一个v-bind:自定义属性='要访问的数据'
            2.在<template>标签中绑定指令v-slot或者slot-scope='自定义属性' -->
       <slot-test>
           <!-- 第一种v-slot 导入的vue文件必须是vue2.6.0以后的 -->
        <!-- <template v-slot="slotDate">
            {{slotDate.user.firstname}}
        </template> -->
        <!-- 第二种 slot-scope -->
        <template slot-scope="slotDate">
            {{slotDate.user.firstname}}
        </template>
       </slot-test>
    </div>
    
    <script>
        Vue.component('slot-test',{
            data:function(){
                return {
                    user:{
                    firstname:'冰冰',
                    lastname:'范'
                }
                }
            }
         }
		</script>

scope
被 2.5.0 新增的 slot-scope 取代。推荐 2.6.0 新增的 v-slot。

用于表示一个作为带作用域的插槽的 元素,它在 2.5.0+ 中被 slot-scope 替代。

除了 scope 只可以用于 元素,其它和 slot-scope 都相同。

v-slot
可放置在函数参数位置的 JavaScript 表达式 (在支持的环境下可使用解构)。可选,即只需要在为插槽传入 prop 的时候使用。

用法:提供具名插槽或需要接收 prop 的插槽 、

<template>
组件 (对于一个单独的带 prop 的默认插槽)
<body>
    <div id="app">
 <!-- 需求遍历父组件中数据通过子组件动态渲染到页面上 -->
       <slot-frusts :list="list">
            <template v-slot="fruits">
                <span :class='fruits.info.id==2?"current":""'>{{fruits.info.name}}</span>
            </template>
       </slot-frusts>
    </div>
    
    <script>
        Vue.component('slot-frusts',{
           props:['list'],
            template:`
            <div>
                <ul>
                    <li :key='item.id' v-for="(item,index) in list">
                        <slot :info='item'>{{item.id}}</slot>
                    </li>
                </ul>
            </div>`
        });
        let options={
            el:'#app',
            data:{
              list:[{
                  id:1,
                  name:'apple'
              },{
                  id:2,
                  name:'orange'
              },{
                  id:3,
                  name:'banana'
              }]

            }

        }
        var vm=new Vue(options);
    </script>
</body>

测试

子组件

<template>
  <div>
    <h4>这是子组件</h4>
    
    <slot name="myslot" :data='list'></slot>
  </div>
</template>
 
<script>
  export default {
    name:'Son',
    data(){
      return{
        list:[
          {name:"Tom",age:15},
          {name:"Jim",age:25},
          {name:"Tony",age:13}
        ]
      }
    }
  }
</script>

父组件

<template>
  <div id="app">
   <Main></Main>
    <!-- <HelloWorld msg="Welcome to Your Vue.js App"/> -->
  </div>
</template>
<script>
import Main from './components/Main.vue'

export default {
  name: 'App',
  components: {
    Main
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  /* margin-top: 60px; */
}
</style>

结果
在这里插入图片描述
结论
获得了子组件slot里面的值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scope=“scope“和作用域插槽 的相关文章

  • 使用 JavaScript 格式化日期

    JavaScript 中的日期格式有问题 这是我的函数代码 originalDate 2016 03 02 09 12 14 989522 var d new Date originalDate month d getMonth 1 day
  • javascript:全局变量泄漏

    每当我向 Firefox 提交插件时 我都会收到一封电子邮件 告诉我我的一些变量正在泄漏到全局范围内 一旦他们告诉我我解决了问题 但在那之前有什么方法 程序 来检查变量是否泄漏到全局范围内 Thanks Both JSLint http w
  • Bootstrap 标签栏平滑移动导航按钮

    我有一个用于切换块的普通引导选项卡面板 在导航中切换块时 活动选项卡会突出显示 但现在 当我单击活动选项卡的背景时 它会立即发生变化 是否可以使切换选项卡时背景不会立即改变 而是根据需要哪个选项卡而平滑地左右移动 这可以用以下方法完成吗cs
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 如何在 google.maps.event.addListener 中使用它

    以下示例有效 但是当我尝试传递参数并使用this在该功能不起作用 Working google maps event addListener markers i click showInfoWindow function showInfoW
  • jQuery UI Datepicker 奇怪的行为

    我在使用 jqueryUI 使用简单的日期选择器时遇到了一个奇怪的问题 我只想显示两个月的日历 包括上个月和当前月份 我使用了这段代码 function picker datepicker numberOfMonths 2 showCurr
  • 从对象中取出具有无效(NaN、空白等)值的键的最佳方法?

    我有一个供用户填写的简短搜索表单 将有多个搜索查询进入 MongoDB 该表单创建一个名为的变量searchParams可能看起来像这样 var searchParams city Springfield bedrooms 3 bathro
  • 为什么函数声明在不同浏览器中的处理方式不同?

    虽然我在谷歌中找不到对此的引用 但我熟悉这样一个事实 在 javascript 中 全局函数声明在执行任何代码之前都会被解释 换句话说 这工作得很好 f function f 但是 我注意到 chrome 和 firefox 对全局函数声明
  • 冒泡可用于图像加载事件吗?

    我可以用吗 window addEventListner 某种程度上来说 我所有的图像都有一个display none 图像加载后 我想设置display inline 这样我就可以规范下载图像时显示的内容 在这种情况下 我无法预加载图像
  • 如何按 Angular 表中的属性(该属性具有单个 rownspan)进行分组?

    我没有找到这个问题的合适标题 我的问题是 例如 我有一个包含两列的表 列汽车品牌和列汽车型号 我希望表是 like in this picture 换句话说 品牌名称只会出现 1 次 我的输入数组采用以下 json 格式 brand Aud
  • Aurelia 中的角度服务?

    我还没有找到详细说明如何从 Angular 1 x 迁移到 Aurelia 的详细文档 到目前为止 我只看到人们详细介绍了 Angular 的概念directive可以在 Aurelia 中使用重制 customElement 好吧 足够简
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • 使 Bootstrap Popover 在悬停而不是单击时出现/消失

    我正在使用 Bootstrap 构建一个网站Popover http twitter github com bootstrap javascript html popovers我不知道如何使弹出窗口出现在悬停而不是单击时 我想做的就是当有人
  • for循环中需要声明变量吗?

    有什么区别 for var i 0 i lt 5 i for i 0 i lt 5 i 是否有必要包含 var 关键字 我知道 var 关键字会影响变量范围 但我无法理解是否有必要在 for 循环中包含该关键字 在第二个示例中 您的变量是全
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮
  • Vue-Router 抽象父路由

    我正在尝试将当前网站迁移到 vuejs 站点地图必须是 login signup password reset browse search dozens of other routes 由于其中一些路线共享大量 fx 因此我将它们设为父路线
  • 如何使用 javascript 更改文件扩展名

    有谁知道在 Javascript 中更改文件扩展名的简单方法吗 例如 我有一个带有 first docx 的变量 但我需要将其更改为 first html 这将改变字符串包含文件名 let file first docx file file
  • 使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

    我正在尝试获取 Flash 播放器当前所在的 URL 不是 swf 文件的 URL 而是浏览器指向的 URL 到目前为止我已经使用过 var st String ExternalInterface call window location
  • Keycloak-js updateToken(minValidity) 需要澄清

    我在Keycloak js中阅读了很多该方法的示例 但没有对以下方法进行明确的解释 updateToken minValidity number KeycloakPromise
  • 如何通过点击复制 folium 地图上的标记位置?

    I am able to print the location of a given marker on the map using folium plugins MousePosition class GeoMap def update

随机推荐

  • 如何异步+队列实现接入阿里云事件监控

    阿里云监控服务可用于收集获取阿里云资源的监控指标或用户自定义的监控指标 探测服务可用性 以及针对指标设置警报 使您全面了解阿里云上的资源使用情况 业务的运行状况和健康度 并及时收到异常报警做出反应 保证应用程序顺畅运行 阿里云事件监控文档地
  • C_单链表去重

    include
  • ubuntu18.04安装mysql5.7

    ubuntu18 04安装mysql5 7 一 安装MySQL 1 安装mysql服务 2 检查状态 3 注意查看mysql版本使用 4 查看MySQL5 7默认账号和密码 二 配置MySQL 三 查mysql服务状态 四 修改root账户
  • uView在uniapp中样式完全失效问题

    最近开发微信小程序和钉钉小程序 使用uniapp UI库准备使用uView 但是按官网引入之后 在小程序模拟器上样式完全无效 而H5正常 解决方法 由于Hbuilderx版本问题 编译的代码中会多出一行样式 可以更换3 2 16版本 亲测有
  • SecureCRT创建串口连接

    鉴于没有在网上找到很好的图解SecureCRT创建串口连接方式 自己写一篇作为备忘录 同时 便于有同样需求的朋友可以快速方便的创建串口连接方式 一 工具 电脑 串口线和超级终端 本文选择SecureCRT 二 方法步骤 1 点击设备管理 查
  • Android EditText接收扫码枪输入,有时缺位,有时出现两次回车

    最近做Android项目时 需要使用外接扫码枪扫描条码 并且接收条码输入的EditText同时还要能接收商品名称的输入 在开发调试的过程中发现 使用扫码枪时会出现条码信息丢失 或者扫码输入过程中出现两次Enter的情况 问题1 扫码枪扫码后
  • JS逆向 - 破解oklink加密参数及加密数据

    版权声明 原创不易 本文禁止抄袭 转载 侵权必究 目录 一 JS逆向目标 会当临绝顶 二 JS逆向分析 不识庐山真面目 三 JS逆向测试 只缘身在此山中 四 JS反逆向 柳暗花明又一村 五 oklink逆向完整代码下载 六 作者Info 一
  • 微信小程序期末大作业-天使童装商城

    微信小程序期末大作业 天使童装商城 导入即可使用 有轮播图 底部导航 各种童装标签 有首页 分类 优惠券 购物车 个人中心五个导航 适合初学者学习使用 如下图所示 资源链接在末尾 资源下载链接 https download csdn net
  • 拉普拉斯噪声满足ε-差分隐私的定义

    差分隐私的定义如下 给定一个兄弟数据集D和D 他们两者之间至多相差一条数据 然后给定一个映射函数 f D R d f D rightarrow R d
  • 史上最全的WebSettings说明

    setAllowContentAccess boolean allow 是否允许在WebView中访问内容URL Content Url 默认允许 内容Url访问允许WebView从安装在系统中的内容提供者载入内容 setAllowFile
  • 前后端分离的vue项目如何合并?springboot 单体应用

    首先是有这么两个应用 前端是vue项目 后端是springboot 构建的服务端 现在是需求是 这个项目很轻量级 完全没必要部署为两个应用 因此需要重新合并 具体步骤如下 第一步 vue项目先打包 执行命令 npm run build 执行
  • PyQt QSpinBox 详细用法 Python

    PyQt QSpinBox 详细用法 Python PyQt 是一个流行的 Python GUI 编程工具包 它提供了丰富的界面元素和功能 使开发人员能够创建强大的图形用户界面 QSpinBox 是 PyQt 中的一个小部件 它允许用户通过
  • 《Qt 5.9 C++开发指南》第2.1节 UI文件设计与运行机制【完整版】

    2 1 UI文件设计与运行机制 2 1 1 项目文件组成 本节实例程序samp2 1完整源程序下载地址 https download csdn net download hongandyi 10413776 在Qt Creator中新建一个
  • 【读论文】多核学习算法及其在高光谱图像分类中的应用研究进展(2021)

    读论文 多核学习算法及其在高光谱图像分类中的应用研究进展 2021 李广洋 DOI 10 12082 dqxxkx 2021 200536 文章目录 摘要 关键词 结论 该论文研究了什么 摘要 多核学习算法在高光谱图像分类领域占据着十分重要
  • 常用工作方法总结(7S、SWOT分析、PDCA循环、SMART原则、6W2H、时间管理、WBS等)

    文章目录 一 7S规则 1 1 推行7S的目的 1 2 7S的概念 二 二八定律 三 SWOT分析法 四 PDCA循环 五 SMART原则 六 6W2H工作方法 七 时间管理 八 WBS工作分解 九 碎石问题分析法 一 7S规则 1 1 推
  • ER图(实体-联系图)

    概念 E R图也称实体 联系图 Entity Relationship Diagram 提供了表示实体类型 属性和联系的方法 用来描述现实世界的概念模型 构成 ER图有实体 entity 属性 attribute 关系 relationsh
  • 光 线 追 踪

    本文首先将会介绍光线追踪的类别族谱 介绍其公共部分 之后我们会分别对其中的每一个进行详细地剖析 光线追踪 Ray tracing 是一个拥有历史感的词汇 图形学从业者从neutron transport heat transfer和illu
  • 有不用出门就能做的副业吗?

    疫情期间一个00后的女孩在家隔离两周 做视频剪辑赚了4000多 是怎么做的呢 其实操作方法并不难 大周也用这个方法在头条上注册了一个新号 虽然时间不长但也赚了3000多 今天这期内容来给粉丝们分享一下操作流程 如果你也想做 可以给大周扣 8
  • com.alibaba.fastjson.JSONObject cannot be cast to com.alibaba.fastjson.JSONObject报错处理

    一 简介 项目A引用项目B的jar作为依赖 启动的时候也没问题 执行项目B中的一段代码的时候就报错了 代码如下 Map
  • scope=“scope“和作用域插槽

    试试目录 1 之前的使用 测试 1 之前的使用 父组件