浅谈Vue3 父子传值
作者:未飞 发布时间:2024-05-28 15:59:21
标签:Vue,父子,传值
父传子:
1、 在父组件的子组件标签上通过 :传递到子组件的数据名="需要传递的数据"
在这里为了大家区分我将父组件中的数据定义为 : fatherData ,
子组件需要接收的数据定义为: sonData 。
// 父组件
<template>
<div class="about">
{{fatherData}}
<!-- 父传子 -->
<!-- 1、 在父组件的子组件标签上通过 :传递到子组件的数据名="需要传递的数据" -->
<children :sonData="fatherData"></children>
</div>
</template>
<script>
import children from "@/components/children"
import { defineComponent,reactive,toRefs } from "vue";
export default defineComponent({
components:{
children,
},
name:"about",
setup(){
const state = reactive({
fatherData:"hello"
})
return {
...toRefs(state)
}
}
})
</script>
2、子组件依旧通过 props 来接收并且在模版中使用
那么大多数情况下都会去通过父组件传递到子组件中的数据,根据这个数据去做一些特定的功能或者请求数据等等。
在 setup 钩子中第一个参数 props 就可以访问到父组件传递的数据,那么在函数中也是通过: props.父组件传递数据的名称 来操作该数据。
setup函数接收props作为其第一个参数,props对象是响应式的(单向的父—>子),watchEffect或watch会观察和响应props的更新。不要对props对象进行解构,那样会失去响应性。在开发过程中,props对象对用户空间代码时不可变的,用户尝试修改props时会触发警告。
// 子组件
<template>
<div class="children">
<!-- 3、在子组件模版中使用 -->
{{sonData}}
</div>
</template>
<script>
export default {
name:"Children",
// 2、子组件通过 props 来接收
props:["sonData"],
setup(props){
function childrenbut(){
// props.sonData 可以访问到父组件传递的数据
console.log(props.sonData);
}
return {
childrenbut
}
}
}
</script>
子传父:
1、子组件触发事件通过 setup 的第二个参数 context.emit 来实现子传父
context 上下文对象。
// 子组件
<template>
<div class="children">
{{sonData}}
<!-- 1、触发事件 -->
<button @click="childrenbut">子组件按钮</button>
</div>
</template>
<script>
export default {
name:"Children",
setup(props,context){
function childrenbut(){
console.log(context);
// 2、通过context.emit 实现子传父
// 第一个参数为 方法名,第二个参数为 需要传递的数据
context.emit("change",'world')
}
return {
childrenbut,
}
}
}
</script>
context 也可以使用结构的形式这样写
// 子组件
<script>
export default {
name:"Children",
// 通过结构 之后直接写 emit {emit}
setup(props,{emit}){
function childrenbut(){
// 省去 context.emit
emit("change",'world')
}
return {
childrenbut,
}
}
}
</script>
来源:https://blog.csdn.net/weifei20001217/article/details/120725337


猜你喜欢
- 假设我们有一个很简单的OTU表:现在对这个表格进行遍历,一般写法为:import pandas as pdotu = pd.read_csv
- 使用Python编写探测WAF指纹脚本,再结合到Sqlmap中,这样以后再探测网站时,如果识别到此WAF指纹,就会显示出来。编写探测识别WA
- xml问价中查询数据中包含list,需要使用collection<resultMap id="XX" type=&
- 什么是数据库镜像?Robidoux:数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个
- 感觉这个东西很常用,很多其它js框架里有,但是太大了,用不了太多,自己写了个。需要的朋友可以参考下。下面是html测试代码:<!DOC
- XML 是严格又自由的标记语言。我们都习惯于它的自由特性,自己想怎么定义都行,设计上非常自由,从不会因为它的标记特性约束到设计灵感的发挥。对
- 网上的关于django-scrapy的介绍比较少,该博客只在本人查资料的过程中学习的,如果不对之处,希望指出改正;以后的博客可能不会再出关于
- 这篇文章主要介绍了PYTHON发送邮件YAGMAIL的简单实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 介绍提到爬虫,互联网的朋友应该都不陌生,现在使用Python爬取网站数据是非常常见的手段,好多朋友都是爬取豆瓣信息为案例,我不想重复,就使用
- PDO::_constructPDO::_construct — 创建一个表示数据库连接的 PDO 实例(PHP 5 >= 5.1.0
- vue项目运行或打包,频繁内存溢出Vue项目运行或打包时,频繁内存溢出情况CALL_AND_RETRY_LAST Allocation fa
- python 3.3 下载固定链接文件并保存。import urllib.requestprint ("downloading w
- 使用access数据库时可能用到的数据转换:类型转换涵数:函数 返回类型 expression 参数范围CBool Boolean 任何有效
- 最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定
- 1.表结构 2.表数据 3.查询teacher_name字段不能等于空并且也不能等于空字符SELECT * FROM s
- 如下所示:# 方法一:%a = "hello"b = "world!"print("你好,
- 一、事件捕捉(Event Capture)的实现问题首先在说这件事前,先感谢一下Realazy。 W3C DOM Level2的事
- xlsxwriter 简介用于以 Excel 2007+ XLSX 文件格式编写文件,相较之下 PhpSpreadsheet 支持更多的格式
- PHP attributes() 函数实例返回 XML 的 body 元素的属性和值:<?php $note=<<<
- 简介XSStrike 是一款用于探测并利用XSS漏洞的脚本XSStrike目前所提供的产品特性:对参数进行模糊测试之后构建合适的payloa