vue3:setup语法糖,defineProps defineEmits defineExpose 在父子组件之间传递的使用

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
1.​defineProps​​​ 用来接收父组件传来的 ​​props​,示例:

子组件:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>
<script setup>
import { difineProps } from 'vue'
difineProps({
    message:{
        type:String,
        default:'我是默认值'
    }
})
</script>

父组件:

<template>
<div>
    <childProps :message="message"></childProps>
</div>
</template>
<script setup>
import childProps from './ChildProps '
import { ref } from 'vue'
const message = ref('我是父组件')
</script>
2.​defineEmits​​​ 子组件向父组件事件传递,示例:

子组件:

<template>
  <div>
    <<button @click="emitEvent">触发事件</button>
  </div>
</template>
<script setup>
import { difineEmits } from 'vue'
const { emit } = difineEmits (['childEvent'])
const emitEvent = ()=>{
    const eventData = 'Data to be passed';
    emit('childEvent', eventData); // 触发自定义事件,并传递数据
}
</script>

父组件:

<template>
<div>
    <child :childEvent="childEvent"></child>
</div>
</template>
<script setup>
import child from './Child '
const childEvent= (data) =>{
    console.log(data)  //输出子组件的值
}
</script>
3.​defineExpose​​​ 组件暴露出自己的属性,在父组件中可以拿到值,示例:

子组件:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script setup>
import { defineProps, defineExpose } from 'vue';

const props = defineProps({
  message: {
    type: String,
    required: true
  }
});

const exposedMethods = {
  getMessage() {
    return props.message;
  }
};

defineExpose(exposedMethods);
</script>

父组件:

<template>
  <div>
    <h3 @click="isclick">我是父组件</h3>
    <child ref="child"></child>
  </div>
</template>

<script setup>
  import child from './child'
  import { ref } from 'vue'
  const child= ref()
  const isclick= () => {
    console.log('接收子组件暴漏出来的方法',child.value.exposedMethods.getMessage)
  }
</script>

Vue3基础(26)___definePropsdefineEmitsdefineExpose、defineModel组件通信、defineOptions Vue3基础(26)___definePropsdefineEmitsdefineExpose组件通信 阅读详情

相关推荐

Vue3 - <script setup语法糖下,实现 “父子“ 组件传参通信(defineProps / defineEmits / defineExpose使用方法的详细示例教程

vue3setup组件传参,vue3-setup语法糖之组件传参(definePropsdefineEmitsdefineExpose),vue3setup父组件子组件传递参数、方法,vue3setup语法糖之ts下的组件传参,vue3--setup--父子组件传参-监听,vue3组件通信,vue3setup父组件子组件传递参数,vue3setup语法子组件父组件传参,vue3组件通信方式,Vue3-scriptsetup>语法糖下怎么组件互相传参,vue3setup语法

🏆 前端领域优质创作者 2826

vue3 setup语法糖,常用的几个:definePropsdefineEmitsdefineExpose

vue3vue2组件之间传参的不同是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。中的代码会在。任何在声明的顶层的绑定 (包括变量,函数声明,以及 import 导入的内容) 都能在模板中直接使用使用双花括号:{{自定义的声明}}。在中要使用动态组件的时候,应该使用动态的:is来绑定,结合三元运算符。

在职可交流前端开发,包括:web端、uniapp等,欢迎指教。 3137

vue3-setup语法糖之组件传参(definePropsdefineEmitsdefineExpose、provide、inject)

父传子 - defineProps。子传父 - defineEmits。可以通过 defineExpose。他们不需要导入,且会随着。链获取到的组件的公开实例,的处理过程一同被编译掉。的(即通过模板引用或者。编译器宏来显式指定在。组件中要暴露出去的属性。

Jocelyn_书 1万+

vue3 defineProps 函数

vue3 defineProps: 在 vue2 中我们使用选项中的 props 来接受父组件传递过来的数据;那在 vue3setup 中,我们使用 defineProps 来定义父组件传递过来的数据

千里之行,始于足下! 1万+

vue3 <script setup> props 使用与讲解】defineProps、withDefaults 类型限制、默认值设置

本章主要涉及api内容:defineProps、withDefaults; defineProps 只能是要么使用`运行时声明`,要么使用`类型声明`。同时使用两种声明方式会导致编译报错。; defineProps、withDefaults 是只在 例子1 > 运行时声明 的方式只能设置参数类型、默认值、是否必传、自定义验证。报错为控制台warn警告。 若想设置[ 编辑器报错、编辑器语法提示 ]则需要使用类型声明的方式。 <script lang='ts' setup> c..

m0_67401228的博客 1万+

vue3:setup语法糖

vue3:setup语法糖

seimeii的博客 1万+

Vue3definePropsdefineEmitsdefineExpose使用

我的使用场景 Vue3组合式API ,写法为 在script标签中使用setup

idanzk的博客 1340

Vue 3 中的 setup

随着vue 3的发布,新增和大改了很多的东西,像响应式的修改、option Api改为component Api...

公众号 @ 桃小瑞 3542

Vue3.x语法糖setup和组件传参相关API的使用

随着Vue3.2版本的更新,script-setup语法糖也随之产生,免去了写setup函数和export default的繁琐步骤,自定义指令可以直接获得并使用,文章侧重于组件以及组件传参使用,响应式相关内容详见文档Vue3文档。

BreenCL的博客 1364

vue3语法糖<script setup>,父子组件通信 使用defineEmit,defineProps,defineExpose

注意:这些语法糖是建立在<script setup>上的 以封装element-plus Pagination 分页组件 子组件获取到父组件的值用defineEmit, 子组件父组件传值用defineProps 子组件暴露自己的数据和方法用defineExpose 直接上完整代码 子组件: <template> <el-pagination @size-change="handleSizeChange" @current-change="

前端的路上 2355

VUE3setup语法糖使用记录

二、computed 使用vue2不同的是,Vue3需要引入相关内容 三、watch监听 使用watch也需要引入,使用方式与vue2相差不大,不同的是,监听多个属性的时候,要写多个watch。 如果写到一起的话,就会出现其中一个值变化,下面的方法都会触发,不能独立监听。 四、组件之间传参 在vue3中有setup语法糖,所以我们引入子组件之后无需注册,可以直接使用子组件也不需要命名 组件之间传参 父子组件的双向绑定 1、通过prop向下传递, emit向上传递。1)父组件通过props向子组件传递

xh1506101064的博客 2830

setup 语法糖 defineProps defineEmits defineExpose

setup语法糖 defineProps defineEmits defineExpose

seimeii的博客 1832

vue3中组合式Api的setup语法糖写法快速入门

vue3setup语法糖写法

zhang_zan 555

vue3父子组件通信(<script setup>)

vue3中,父子组件通信与vue2不同,没有this,所以不能直接使用this.$emit 和this.$refs和Props。那么在vue3中我们要怎么通信呢?(补充:这里我们使用的是, 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。相比于普通的 语法,它具有更多优势。

Lora_0925的博客 6881

Vue3 setup语法糖使用深入版

1.组件 1.1组件引用 组件在props里直接引入就可在template里直接使用,无需再进行注册。 <template> <div class="box"> <!-- 子组件引用 --> <v-child></v-child> </div> </template> <script setup> // 引入后无需注册 import vChild from '../compone...

fanlao4203的博客 949

学习vue3 三,组件基础,父子组件传值

通过defineProps方法,参数传一个对象,将要接受的数据通过属性的方式写入,如果要进行一些配置也可以使用对象的形式进行配置,如title。注意需要在onMounted里打印的原因是,setup的生命周期早于子组件挂载,也就是子组件还没有挂载就打印输出所以会是undefined。是通过defineEmits派发一个事件,绑定一个自定义事件,通过一些vue有的事件去触发这个emit从而达到传值的目的。调用此钩子时,组件实例的所有指令都被解除绑定,所有事件侦听器都被移除,所有子组件实例被卸载。

tian_liang_jia的博客 946

vue3 setup语法糖 defineExpose使用

defineExpose - 子组件暴露自己的属性或方法

weixin_43135489的博客 606

Vue3setup语法糖下常用API使用方法】

Vue3setup语法糖下常用api使用方法

Selicens的博客 682

Vue3 - setup语法糖

setup函数不同的是,在script标签中添加setup 1、变量、方法不需要 return 出来 属性和方法也不用返回,也不用写setup函数,也不用写export default ,甚至是自定义指令也可以在我们的template中自动获得 <script setup> import { ref } from 'vue'; <!-- flag变量不需要在 return出去了 --> let flag = ref("ABCD")...

欢迎来到猫猫的博客 o_o ,如有问题,欢迎提出改正~ 2923
上一篇: VUE3总结-响应式基础
下一篇: vue3深入组件:Prop 校验
Strangersss
博客等级 码龄10年 0粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值