1.使用props,emit传参

// 父组件
<template>{{arr}}<test :arr="arr" @emitest="emitSon" />
</template><script lang="ts">
import { defineComponent,ref, watch} from 'vue'
import { ElMessage } from 'element-plus'
import test from './components/test.vue';
export default defineComponent({components:{test},setup () {let arr =ref([1,2,3])const emitSon = (e:Array<number>) => {arr.value = e}watch(arr,(newValue)=>{ElMessage({type:'success',message:`arr变化了${newValue}`,duration:1000})},{deep:true,     // 深度监听immediate:true // 首次监听})return{arr,emitSon}}
})
</script>// 子组件
<template><el-button @click="add">send emit + 4</el-button><el-button @click="del">send emit - 4</el-button>
</template><script lang="ts">
import { defineComponent } from 'vue'
import { ElMessage } from 'element-plus'
export default defineComponent({props:{arr:Array},setup (e:any,{emit}) {const add = () => {let arrs:Array<number> = e.arrarrs.push(4)emit('emitest',arrs)}const del = () => {let arrs:Array<number> = e.arrif(arrs.at(-1) == 4){arrs.pop()emit('emitest',arrs)}else{ElMessage.warning('最后一位不是4不能删除')}}return {add,del}}
})
</script>

2.使用setup语法糖里的defineProps,defineEmits传参

1.使用v-model:xxx

可参考官方 组件事件 | Vue.js

// 父组件
<template><vmodule v-model:swval="swval" /> 父组件:{{swval}}
</template>
<script lang="ts">
import { defineComponent,ref} from 'vue'
import vmodule from './components/vmodule.vue'
export default defineComponent({components:{vmodule},setup () {let swval = ref(true)}return{swval}
})
</script>// 子组件
<template><el-switch v-model="swval" @click="send" />子组件:{{swval}}
</template>
<script setup lang="ts">
const props = defineProps({swval:{type:Boolean,default:false},
})
const emits = defineEmits(['update:swval'])
const send = () => {emits('update:swval',props.swval)
}
</script>

2.使用 :xxx="xxx"

// 父组件
<template><vmodule :swval="swval" @emitSon="emitSon" />父组件:{{swval}}
</template>
<script lang="ts">
import { defineComponent,ref} from 'vue'
import vmodule from './components/vmodule.vue';
export default defineComponent({components:{vmodule},setup () {let swval = ref(true)const emitSon= (e:any) => {swval.value = e}return {swval,emitSon,}}
})
</script>// 子组件
<template><el-switch v-model="swval" @click="edit"/>子组件:{{swval}}
</template>
<script setup lang="ts">
const props = defineProps({swval:{type:Boolean,default:false}
})
const emits = defineEmits(['emitSon'])
const edit = () => {emits('emitSon',props.swval)
}
</script>

vue3 父子/子传参相关推荐

  1. 【Vue3】第十四部分 父子组件传参

    [Vue3]第十四部分 父子组件传参 文章目录 [Vue3]第十四部分 父子组件传参 14. 父子组件传参 14.1 父传子(props) 14.2 子传父(emit) 14.3 子传父(ref) 总 ...

  2. react 子传参父_react子父传参有几种方法?

    react子父传参有几种方法?下面本篇文章给大家介绍一下react父子组件传参(值)的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. react父子组件传参(值)的几种方法 一 ...

  3. VUE3 之 组件传参

    目录 1. 概述 2. 组件传参 3. 综述 4. 个人公众号 1. 概述 韦奇定律告诉我们:大部分人都很容易被别人的话所左右,从而开始动摇.怀疑,最终迷失自我.因此我们要努力的坚定信念,相信自己,才 ...

  4. vue组件间通信传递数据的四种方式(路由传参、父子组件传参、兄弟组件传参、深层次传参)

    前言: vue组件间通信对于经常来写vue的伙伴来说应该是很轻松的,对于一些刚入门的伙伴来说可能就有些迷茫,感觉方式有很多种,但是总结起来又不知道应该怎么说,在下面的文章中,我结合自己的开发过程中经常 ...

  5. vue2.0父向子传参,子向父传参,路由传参

    父向子传值: //父组件 <selectionGroup v-for="item in tab" :item="item"></selecti ...

  6. vue2 父子组件传参 回调函数使用

    关键点: 父组件给子组件动态传参使用v-bind:属性key(多个单词用下划线拼接) 子组件接收父组件传参参数使用 props标签,+属性key多个单词用驼峰形式拼接) 子组件定义回调父组件函数 子组 ...

  7. Vue3 TS props传参报错TS2722: Cannot invoke an object which is possibly ‘undefined‘.

    项目场景: 我用Props在子组件接受父组件传来的函数, 并向函数内传参调用. 问题描述 TS解析时认为props内的这个函数可能会是undefined, 所以直接报错. 原因分析: 这个函数在bef ...

  8. vue3 router.push 传参路由跳转错误提示 Argument type {xxx} is not assignable to parameter type RouteLocationRaw

    文章目录 问题描述 解决方法 问题描述 传参时,router.push中布尔值变量会给出一个错误提示 setup(){const router = useRouter();/** 查看已办任务的流程记 ...

  9. react 子传参父_React 子组件给父组件传值、整个组件、方法

    一.准备工作 1.定义一个父组件,名字为Parent /src/component/Parent.js import React, {Component} from 'react' export de ...

最新文章

  1. web 平台搭建-LAMP-源码包(CentOS-6)
  2. mysql 安装卸载_MySQL(一)——安装、卸载以及基本操作
  3. 【博士论文】分形计算系统
  4. mysql 超时异常_java.sql.SQLException:超出锁定等待超时;尝试在MYSQL中重启事务异常...
  5. Servlet中乱码问题
  6. 组合的json文件分隔或者拆分
  7. js倒计时天时分秒php,JS制作分秒倒计时器
  8. Document is invalid: no grammar found. at (null:3:8)
  9. 堆排序不稳定的例子_【译】Python中的堆排序
  10. 首发骁龙8 Gen1!联想陈劲:摩托罗拉edge X将给行业扔一颗大炸弹
  11. C++ wchar_t
  12. java中sql 语句格式转换_Java字符串转Sql语句In格式工具方法
  13. 【转】解决“你没有权限访问,请与网络管理员联系”
  14. 天龙源码框架分析_天龙八部源码描述【转】
  15. JPG/PNG转真SVG,非base64
  16. 移植littleVGL到STM32(个人笔记)
  17. 复合型网络拓扑结构图_网络拓扑结构大全和图片(星型、总线型、环型、树型、分布式、网状拓扑结构)...
  18. 《android开发艺术探索》笔记
  19. android禁用传感器,Android 系统 强制 禁用 距离传感器 方法
  20. VC编程调用dxdiag生成XML文件,来获取系统配置情况

热门文章

  1. 主机安全(6)tcp wrapper
  2. z_Ontouch_Onclick
  3. 打包上线后IE9样式不显示问题
  4. 证券交易的量化接口的用途?
  5. SEO作弊:博客群发会被K掉吗?
  6. 2024秋招行测测评所用题库总结+测评题目解答思路和总结+测评题库汇总
  7. oracle 0.5格式问题,两种方法解决Oracle的数值0.5只显示成.5问题
  8. native转ascii工具(复制成html文件即可用)
  9. 云服务器哪家服务好、性价比高、比较稳定?
  10. 《仙剑7》发售在即、《古剑4》立项,可国产Unity还要多久?