首页 > 其他分享 >vue3中的props和emit

vue3中的props和emit

时间:2024-07-15 15:28:07浏览次数:15  
标签:const props emit msg vue3 组件 hello

首先我们要明确props和emit是在父子组件(嵌套组件)中使用的 。

想要在父组件中渲染出子组件里的内容,需要在父组件中导入子组件,并在模板中渲染子组件。

那父子组件中如何通信呢?就需要使用到props和emit。

props

当子组件要接受父组件传递的数据信息时,也可以说是父组件传递数据给子组件时(子组件要显示父组件中的内容),需要使用props传递。

在子组件中,需要声明它所接受的props

<script setup>

const props = defineProps({
msg:string

}) 

</script>   

<template>
{{msg}}
</template>
在父组件中,导入子组件

<script setup>
import {ref} from 'vue'
import children from './children.vue'

导入之后,定义需要传输的数据
const hello=ref( 'hello,my friend')

</script>

<template>

在模板中的子组件内部动态绑定传输的数据

  <children :msg='hello' />

</template>

在子组件中,结果会显示父组件中的hello里的内容,hello的内容变化时,显示的内容会同步变化。

emit

子组件要向父组件触发事件时,也就是说,父组件要显示子组件中的内容时,需要使用emit传递。

在子组件中
<script setup>

//需要声明触发的事件
const emit = defineEmits(['response'])

//emit() 的第一个参数是事件的名称。其他所有参数都将传递给事件监听器。
emit('response', 'hello child')

</script>

在父组件中,需要使用v-on 监听子组件触发的事件
<script setup>

import { ref } from 'vue'
import Child from './Child.vue'

const childMsg = ref('No msg ')
</script>

<template>
//response是子组件中定义的需要触发的事件名称,把子组件中msg的值赋给负组件中的childmsg
  <Child   @response="(msg) => childMsg = msg"  />
  <p>{{ childMsg }}</p>
</template>

在父组件中,结果显示为子组件中的emit传递的第二个参数的值,当值发生变化时,视图也会同步变化。

标签:const,props,emit,msg,vue3,组件,hello
From: https://blog.csdn.net/qq_66318904/article/details/140437053

相关文章

  • Vue3+Element Plus 使用sortablejs对el-table表格进行拖拽
    sortablejs官网:点击跳转一、安装sortablejsnpminstallsortablejs--save二、 页面按需引入importSortablefrom'sortablejs';三、组件方法1.temlate:<template><el-tableref="tableHeader":data="tableData"row-key="id"style=&quo......
  • vue3+Element Plus 自定义表格单选 多选
    项目背景:用vue3+elementplus做一套考试系统功能场景:添加试题中分为客观题、主观题两种类型,在客观题会出现单选题、多选题两种类型就会导致单选题只能勾选一个答案、多选题能勾选多个答案。效果图废话不说直接上代码<el-buttonclass="btn"icon="Plus"plainst......
  • 静态html vue3 element-plus 示例页面
    代码:<!doctypehtml><html><head><metacharset="utf-8"><title>example</title><!--复制于文件:https://unpkg.com/[email protected]/dist/vue.global.js--><scriptsrc="/......
  • 【Django+Vue3 线上教育平台项目实战】构建高效线上教育平台之首页模块
    文章目录前言一、导航功能实现a.效果图:b.后端代码c.前端代码二、轮播图功能实现a.效果图b.后端代码c.前端代码三、标签栏功能实现a.效果图b.后端代码c.前端代码四、侧边栏功能实现1.整体效果图2.侧边栏功能实现a.效果图b.后端代码c.前端代码3.侧边栏展示分类及课程......
  • defineProps和defineEmits
    defineProps当在不同场景下,父组件控制子组件展示不同的样式,或者传递不同的数据,这个时候就需要使用到props,子组件通过props来接收父组件传递过来的数据。场景复现:不同的页面中导航栏展示不同的颜色,这个时候就需要对导航栏组件使用props声明,如此父组件就可以完成对子组件......
  • ts vue3 自定义指令
    当然,以下是将前面两个步骤汇总到一起的完整实现方案:1.定义指令首先,在src/directives文件夹中创建你的自定义指令文件。例如,v-focus.ts和v-color.ts:v-focus.ts:import{Directive}from'vue';constvFocus:Directive={mounted(el){el.focus();}};ex......
  • ts vue3 element-plus 自建可配置表单弹窗实现
    当然可以!下面是使用TypeScript语法的动态表单弹出组件示例。1.创建动态表单弹出组件(TypeScript)<template><el-dialog:visible.sync="visible"title="表单"@close="handleClose"><el-form:model="formData":rules="rules"......
  • props与emits
    在Vue3中,父子组件之间的数据传递是一个常见的需求。本文将介绍如何在Vue3中传递对象,并且在子组件中访问和修改父组件对象中的属性值,以及子组件如何调用父组件中的方法。在Vue3中,父子组件之间传值有以下作用:1.组件通信:父组件可以通过向子组件传递数据来实现与子组件的......
  • zdppy+onlyoffice+vue3解决文档加载和文档强制保存时弹出警告的问题
    解决过程第一次排查最开始排查的是官方文档说的https://api.onlyoffice.com/editors/troubleshooting#key解决方案。参考的是官方的https://github.com/ONLYOFFICE/document-server-integration/releases/latest/download/Python.Example.zip基于Django的Python代码。......
  • Vue2与Vue3的区别
    Vue2官方已经发布不再维护了,很多公司也开始纷纷使用vue3了。那么vue3和vue2有哪些不同呢?vue3(下面简称v3)又在vue2(下面简称v2)上做了哪些拓展与改进呢?(1)首先最大的区别是数据双向绑定的改进,v2用的是es5的数据劫持Object.definedProperty,这个会一开始就给所有的数据设置了监听,比......