Vue 插槽之 作用域插槽「建议收藏」

现在我有如下需求,子组件<user/>中此时有一条用户的信息(userInfo);我要在父组件通过插槽展示这个用户的姓名(userInfo.name);注意:这里的父组件并没有这个用户的信息,子组件中有,如果直接在父组件{{userInfo.name}}获取这条信息是获取不到的;因为,只有<user/>组件可以访问到userInfo,而我们提供的内容是在父…

大家好,又见面了,我是你们的朋友全栈君。

现在我有如下需求,子组件 <user /> 中此时有一条用户的信息(userInfo);我要在父组件通过插槽展示这个用户的姓名(userInfo.name);

注意:这里的父组件并没有这个用户的信息,子组件中有,如果直接在父组件{
{userInfo.name}}
获取这条信息是获取不到的;因为,只有 <user /> 组件可以访问到 userInfo,而我们提供的内容是在父组件渲染的;
模板在哪写,就是用哪里的变量,跟插槽用在哪无关
模板是在父组件中写好,被编译过后,传到子组件的插槽中的

为了让父组件的插槽内容可以读取到子组件的数据,我们可以将userInfo 作为一个 <slot> 元素的特性绑定上去;

// 子组件
const card = { 
   
    data() { 
   
        return { 
   
            userInfo: { 
   name: '宫鑫'}
        }
    },
    template: ` <div class='card'> <!-- 在插槽上绑定子组件的数据 --> <slot :userInfo="userInfo"/> </div> `
};

绑定在 元素上的特性被称为插槽 prop。现在在父级作用域中,我们可以给v-slot带一个值来定义我们提供的插槽 prop 的名字:

// 父组件
template: ` <div> <card> <template v-slot:default="userInfo"> 用户姓名: { 
    {userInfo}} </template> </card> </div> `

// 输出:
// 用户姓名: { "userInfo": { "name": "宫鑫" } }

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129070.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins教程(Windows版)

    Jenkins教程(Windows版)安装Java环境安装过程省略环境变量JAVA_HOME=C:\ProgramFiles\Java\jdk1.8.0_191PATH增加%JAVA_HOME%\binjava-version安装Maven环境安装过程省略环境变量MAVEN_HOME=D:\apache-maven-3.5.4PATH增加%MAVEN_HOME%\binmvn-v安装Tomcat环境安装过程省略环境变量CATALINA_BASE=D:\apache-tom..

    2022年5月14日
    36
  • mybatis plus代码生成器使用(60plus)

    更新:实体类lombok注解@Setter和@Getter改为@Data

    2022年4月13日
    75
  • pycharm安装好了打不开_保留我的文件 删除所有内容

    pycharm安装好了打不开_保留我的文件 删除所有内容昨晚电脑系统崩了》》就直接恢复系统》》保留所有文件今天Pycharm无法打开了,就重新安装了,但是安装后咋也打不开。解决方法:C:\Users\ORANGE(用户名)下删除之前残留的问题件.Pycharm2019.3…

    2022年8月28日
    0
  • Java的finalize方法干什么_Java finalize

    Java的finalize方法干什么_Java finalize我们通常用构造器来创建对象,而Finalize正好相反,构造方法执行对象的初始化操作,finalize方法执行对象的销毁操作.那我们什么时候需要使用finalize方法呢,我们都知道Java里垃圾回收器可以回收对象使用的内存空间,但是对象可能会持有很多资源比如Socket、文件句柄等,垃圾收集器无法回收这些资源,因此你需要使用finalize方法帮助GC回收这些资源,比如关闭打开的文件或者网元资源,删除临时文件等.一个例子Object类是所有类的父类,如果你去查看java.lang.Object类

    2022年9月19日
    0
  • 计算机硬件知识

    一为何要学习计算机基础python是编程语言,即python是语言语言有英语、法语、葡萄牙语等,但凡是语言,都是用来沟通的介质。程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机

    2022年3月29日
    59
  • Java程序设计(高级及专题)- IO流与序列化

    Java程序设计(高级及专题)- IO流与序列化

    2021年7月20日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号