Vue3setup的参数说明

news2024/11/27 8:16:37

setup的两个参数

setup包含两个参数,一个为props、一个为context (均为形参)

    • props:值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性。
    • context:上下文对象
<script>
    export default {
        name:'Child',
        setup(props,context){

        }
    }
</script>

在说明这两给参数之前,,我们需要回顾一下Vue2的知识

vue2中的$attrs

我们向Demo组件传递msg和school属性

如果我们在子组件中使用props声明接收并打印当前实例vc对象

export default {
  props:['msg','school'],
  mounted() {
    console.log(this)
  }
}

我们可以发现这个实例对象vc上有msg和shcool属性,$attrs这个对象为空

因此,我们可以在demo组件直接通过 { { msg } } 的方式使用接收到的参数

如果,我们在子组件中不使用props声明接收,打印当前实例vc对象

export default {
  //props:['msg','school'],
  mounted() {
    console.log(this)
  }
}

我们可以发现,vc实例上没有 msg 和 school 这两个属性了。

但是,打开 a t t r s ,我们会惊奇的发现,即使子组件没有声明接受,父组件传递的参数也会被 attrs,我们会惊奇的发现,即使子组件没有声明接受,父组件传递的参数也会被 attrs,我们会惊奇的发现,即使子组件没有声明接受,父组件传递的参数也会被attrs所捕获

这也意味着即使我们不声明参数的接收,也可以直接在子组件中使用 { {$attrs.msg } }的方式使用参数,但,这确实还是比较麻烦的。

综上,我们可以知道

子组件声明接收的参数,会直接挂载在vc实例上;而子组件未声明接收参数,会储存在 $attrs 中。

Vue2中的$slots

我们在父组件中使用demo组件

<template>
  <div>
    <h1>我是Vue2写的效果<h1>
    <Demo></Demo>
  </div>
</template>

打印子组件的实例对象vc

<template>
  <div>
    我是Demo组件
  </div>
</template>
export default {
  mounted() {
    console.log(this)
  }
}

可以发现,子组件的实例对象vc上的$slots属性为空

如果我们在demo标签之间写一点东西

<template>
  <div>
    <h1>我是Vue2写的效果<h1>
    <Demo>
       <span>你好啊<span1>
    </Demo>
  </div>
</template>

这时,我们打印一下子组件的实例对象v会惊喜的发现,$slots上存放了我们传入的虚拟节点(Vnode)

这个时候,如果我们在子组件中定义了插槽,这些虚拟节点就会渲染在插槽出现的位置

<template>
  <div>
    我是Demo组件
    <slot></slot>
  </div>
</template>
export default {
  mounted() {
    console.log(this)
  }
}

当然,即使不定义插槽,标签之间的虚拟节点也都会存放在$slots属性上。

1、props参数详解

APP.vue(父组件)

<template>
	<div class="app">
		<h3>我是App组件</h3>
		<Child :name ="提姆" age="9"></Child>
	</div>
</template>
<script>
	import Child from './components/Child.vue'//静态引入
	export default {
		name:'App',
		components:{Child},  //组件写法不变
	}
</script>

Child.vue(子组件)

<template>
    <div class="child">
        子组件
        <span>{{ name }}</span>
        <span>{{ age }}</span>
    </div>
</template>

<script>
    export default {
        name:'Child',
        // props:["name","age"],    //组件的props参数同vue2
        setup(props,context){
           console.log(props)
           console.log(context)
        // console.log(context.attrs)
        }
    }
</script>

如上图,如果props不声明接收(被注释),则setup的第一个参数为空,但context内可以找到相关值。

声明props后,即去掉注释后,

2、slots参数详解

      • attrs: 值为对象,包含:组件外部传递过来,但没有在props配置中声明的属性, 相当于 this.$attrs。
      • slots: 收到的插槽内容, 相当于 this.$slots。
      • emit: 分发自定义事件的函数, 相当于 this.$emit。

3、emit参数详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

26-DOM常见的操作(了解)

一、DOM &#x1f37f;&#x1f37f;&#x1f37f;文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口 它提供了对文档的结构化的表述&#xff0c;并定义了一种方式可以使从程序中对该结构进行访问&#xff0c;从而改变文档的结构&#xff0c;样式和内容 例如&#xff1a;随着…

2023再更新下百度蜘蛛最新UA(User Agent)

其实百度蜘蛛的UA一直没什么变化&#xff0c;有不少朋友以为百度蜘蛛修改特征了&#xff0c;我查了下日志&#xff0c;把最新的UA整理出来给大家。 百度UA信息&#xff1a; Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html) 神码ai在了…

LVS负载均衡群集——DR直接路由模式

一.LVS数据包流向分析 1.数据包流向 &#xff08;1&#xff09;客户端发送请求到 Director Server&#xff08;负载均衡器&#xff09;&#xff0c;请求的数据报文&#xff08;源 IP 是 CIP,目标 IP 是 VIP&#xff09;到达内核空间。 &#xff08;2&#xff09;Director Ser…

Spring Bean 的生命周期快速记忆

引言 “请你描述下 Spring Bean 的生命周期&#xff1f;”&#xff0c;这是面试官考察 Spring 的常用问题&#xff0c;可见是 Spring 中很重要的知识点。 我之前在准备面试时&#xff0c;去网上搜过答案&#xff0c;大多以下图给出的流程作为答案。 如何记忆 Spring Bean 的…

电影《消失的她》观后感

上周看了电影《消失的她》&#xff0c;也许是和朋友一起看的原因吧&#xff0c;这次电影的体验感觉比以往更好&#xff0c;这或许就是共同经历的缘故&#xff0c;同时看完电影&#xff0c;还可以大家一起讨论下。本部电影讲述一个富商国外旅游&#xff0c;女友莫名消失&#xf…

LVS负载均衡群集博客

文章目录 LVS负载均衡群集一.什么是集群1.群集的含义 二.集群使用在那个场景三.集群的分类1.负载均衡器群集2.高可用群集3.高性能运算群集 四.负载集群的架构1.第一层&#xff0c;负载调度器2.第二层&#xff0c;服务器池3.第三层&#xff0c;共享存储 五.负载均衡集群的工作模…

人工智能在航天领域中有哪些应用?

随着科技的不断进步&#xff0c;人工智能已经成为各个领域中的重要驱动力。在航天领域中&#xff0c;人工智能的应用正日益展现出巨大的潜力。航天领域对精确性、自动化和高效性的需求&#xff0c;使得人工智能成为实现这些目标的关键技术之一。人工智能正在以其独特的优势和算…

使用MQL4编写自己的交易策略:技巧与经验分享

随着技术的发展&#xff0c;越来越多的投资者开始使用程序化交易系统进行交易&#xff0c;其中MQL4语言是广泛应用于MetaTrader 4平台上编写交易策略的一种语言。本文将分享一些技巧和经验&#xff0c;帮助读者利用MQL4编写自己的交易策略。 策略开发流程 首先&#xff0c;我…

如何用ChatGPT写Shell脚本

因为最近下班前都要拿机子搞压测&#xff0c;所以这段时间对shell脚本比较感兴趣&#xff0c;用chatGPT写shell脚本很方便。 如下是一些案列 比如我需要写一个批处理&#xff1a;写一个批处理在当前文件夹下建立20个文件夹每个文件夹里面有一个文本文档文本文档的第一句话是hel…

实现分类标签展示的魔力——gradio库中的Label模块

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

第40节:cesium 温度场效果(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false"><!

JAVA POI 图片插入excel保存导出,可多图,多种插入样式

JAVA POI 图片插入excel保存导出,可多图,多种插入样式 JAVA POI 图片插入excel保存导出,可多图,多种插入样式 import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.util.Date;i…

RK3588平台开发系列讲解(Camera篇)OV569摄像头调试

文章目录 一、摄像头识别检测二、查看摄像头支持的格式三、摄像头采集格式查询四、摄像头采集格式查询沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解OV569摄像头调试。 OV5695 是一种图像传感器,用于摄像头设备。要进行 OV5695 摄像头的调试,通常涉…

如何使用 Oracle 的 Operator 在 Kubernetes 上运行 MySQL

过去几年,Kubernetes 对有状态应用程序的支持已经相当成熟。现在可以将数据库放置在集群内,从而使其能够受益于与其他工作负载相同的可扩展性。 MySQL 是最流行的关系数据库引擎之一,现在由官方Kubernetes 运营商对其进行了增强。Oracle 主导的开源项目提供了一种在 Kubern…

Java学习笔记(static静态变量)

static static表示静态&#xff0c;是Java中的一个修饰符&#xff0c;可以修饰成员方法&#xff0c;成员变量 被static修饰的成员变量&#xff0c;叫做静态变量&#xff0c;被static修饰的成员方法&#xff0c;叫做静态方法 静态变量的特点&#xff1a; 被该类所有对象共享…

[golang gin框架] 39.Gin商城项目-微服务实战之微服务架构

一.引入 单体架构在 中小企业内部用的是非常多的&#xff0c;当 业务不复杂&#xff0c; 团队规模不大的时候&#xff0c;单体架构比微服务架构具有 更高的生产率 单体架构 当 业务比较复杂, 并发量比较大, 团队规模扩大的时候, 就需要引入微服务架构了,它比单体架构具有 更高的…

moven项目生成和运行

[TOC]moven学习笔记 生成maven项目 mkdir movenT cd movenT/ mvn -B archetype:generate -DgroupIdcom.mycompany.app -DartifactIdmy-app -DarchetypeArtifactIdmaven-archetype-quickstart -DarchetypeVersion1.4 tree 生成jar mvn package 运行 class cd /root/moven…

青岛大学_王卓老师【数据结构与算法】Week04_08_线性表的应用1_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

scratch 抓狐狸

scratch 抓狐狸 本程序的功能是通过键盘控制“男孩”角色移动&#xff08;程序用的是旋转形式实现上下移动&#xff0c;后来才发现有直接改变y坐标的模块&#xff09;&#xff0c;“狐狸”角色连续在随机位置、随机方向生成&#xff0c;程序显示在场“狐狸”的数量&#xff0c;…

ChatGPT显示付费墙内容,OpenAI把联网功能关了

ChatGPT 学会上网不到两个月&#xff0c;OpenAI就不能忍了。 本周二&#xff0c;OpenAI 突然宣布停止 ChatGPT 的网络浏览功能「使用 Bing 浏览」。 果不其然&#xff0c;关闭的原因是这项功能遭到了滥用。在周一发布的一篇文章中&#xff0c;OpenAI 支持团队人员表示&#xf…