iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3中的父子组件通讯详情
  • 352
分享到

vue3中的父子组件通讯详情

2024-04-02 19:04:59 352人浏览 泡泡鱼
摘要

目录一、传统的props二、通过modeValue绑定三、事件广播(vue3中$on和$emit已废弃),使用新的插件mitt一、传统的props 通过在父组件中给子组件传值,然后在

一、传统的props

通过在父组件中给子组件传值,然后在子组件中通过props接受数据

 //父组件
  <ValidateInput
       type="text"
       v-model="emailVal"
       :rules='emailRules'
       placeholder='请输入邮箱地址'
       ref="inputRef"
  >
  </ValidateInput>
                     
 //子组件
 export default defineComponent({
   name: 'ValidateInput',
   props: {
    rules: Array as PropType <RulesProp>,
     modelValue: String
   },
 }

二、通过modeValue绑定

//v-model简写
<ValidateInput
  type="text"
  v-model="emailVal"
  placeholder='请输入邮箱地址'
  ref="inputRef"
 >
</ValidateInput>

//实际上是
<ValidateInput
  type="text"
  :emailVal="emailVal"
  @update:modelValue="方法"
  placeholder='请输入邮箱地址'
  ref="inputRef"
 >
</ValidateInput>

//子组件
<template>
  <div class="inputItem">
    <input
      type="text"
      :value="inputRef.val"
      @input="updateValue"
      id="emial"
      >
  </div>
</template>
export default defineComponent({
  name: 'ValidateInput',
  props: {
    rules: Array as PropType <RulesProp>,
    modelValue: String
  },
  setup (props, context) {
    const inputRef = Reactive({
      val: props.modelValue || '',
      isError: false,
      message: ''
    })
    const updateValue = (e:KeyboardEvent) => {
      const targetValue = (e.target as htmlInputElement).value
      inputRef.val = targetValue
      context.emit('update:modelValue', targetValue)
    }
    return {
      inputRef,
      updateValue
    }
  }

三、事件广播(Vue3中$on和$emit已废弃),使用新的插件mitt

Vue3.0版本中把on,off、onece等事件函数移除了,emit()用于父子组件之间的沟通。为了能够使用事务总线,除了emit触发函数还得有on监听函数。官方推荐使用第三方库mitt

首先安装第三方库mitt

npm install --save mitt

然后在程序中使用事件总线:

 //父组件接受'fORM-item-created'频道
 <script lang="ts">
  import { defineComponent, onUnmounted } from 'vue'
  import mitt from 'mitt'
  export const emitter = mitt()
  export default defineComponent({
    name: 'ValidateForm',
    setup () {
      const callback = (test: string) => {
       console.log(test)
     }
     emitter.on('form-item-created', callback)
    onUnmounted(() => {
      emitter.off('form-item-created', callback)
     })
     return {}
   }
})
 </script>
 //子组件发送信息
 onMounted(() => {
       console.log(inputRef.val)
       emitter.emit('form-item-created', inputRef.val)
 })

到此这篇关于vu3中的父子组件通讯详情的文章就介绍到这了,更多相关vu3组件通讯内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3中的父子组件通讯详情

本文链接: https://www.lsjlt.com/news/150763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3中的父子组件通讯详情
    目录一、传统的props二、通过modeValue绑定三、事件广播(vue3中$on和$emit已废弃),使用新的插件mitt一、传统的props 通过在父组件中给子组件传值,然后在...
    99+
    2024-04-02
  • vue3 非父子组件通信详解
    目录第一种方法App.vueHome.vueHomeContent.vue数据的响应式修改响应式Property总结业务场景是,不是父子组件实现通信 文件目录 第一种方法 Ap...
    99+
    2024-04-02
  • 详解Angular父子组件通讯
    目录概述一、输入输出属性概述二、输入属性三、属性绑定是单向的,从父组件到子组件四、输出属性1、先模拟一个实时变动的IBM的股票价格2、把信息输出出去,告诉组件外部,谁感兴趣谁来订阅3...
    99+
    2024-04-02
  • vue3 父子组件传值详解
    现在距离vue3的诞生已经过了很长时间了,笔者也是近期才开始学习vue3。对比vue2来看,vue3在写法发生了不小的变化,最典型的例子就是vue3通过ref,或者reactive实...
    99+
    2024-04-02
  • 详解vue3中的非父子组件传值
    目录App.vuesub1.vuesub2.vue总结 vue2中非父子组件的传值主要是通过事件总线,创建一个vue实例,通过在不同的组件中导入该实例来实现非父子组件之间的通信行...
    99+
    2024-04-02
  • vue中父组件和子组件怎么通讯
    这篇文章主要介绍“vue中父组件和子组件怎么通讯”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue中父组件和子组件怎么通讯”文章能帮助大家解决问题。一、单向数据流在 Vue.js 中,父组件向子组...
    99+
    2023-07-06
  • Angular父子组件通讯的方法
    这篇文章主要介绍Angular父子组件通讯的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述Angular组件间通讯组件树,1号是根组件AppComponent。组件之间松耦合,组件之间知道的越少越好。组件4里...
    99+
    2023-06-15
  • React中父子组件通信详解
    目录父组件向子组件通信存在期父组件向子组件通信 在父组件中,为子组件添加属性数据,即可实现父组件向子组件通信。传递的数据可以分成两类 子组件是作为属性来接收这些数据的 第一类就是数据...
    99+
    2024-04-02
  • Vue中的父子组件通讯以及使用sync同步父子组件数据
    目录前言子组件向父组件中传递数据一. 通过props从父向子组件传递函数,调用函数改变父组件数据二. 通过自定义事件从子组件向父组件中传递数据三. 通过ref属性在父组件中直接取得子...
    99+
    2024-04-02
  • 父子聊通讯:揭秘 VUE 父子组件通信的那些事儿
    父子组件通信是VUE中非常重要的一个概念,它允许父子组件之间进行数据传递和事件触发。在VUE中,父子组件通信可以通过以下几种方式实现: Props: Props是VUE中实现父子组件通信最常用的方式。它允许父组件将数据传递给子组件。 ...
    99+
    2024-02-07
    文章 VUE 父子组件通信 props $emit ref $children $parent
  • VueJs中怎么实现父子组件通讯
    这篇文章将为大家详细讲解有关VueJs中怎么实现父子组件通讯,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、概括在一个组件内定义另一个组件,称之为父子组件...
    99+
    2024-04-02
  • angular父子组件通信详解
    目录用到的api简单的例子person.ts父组件子组件效果总结用到的api Input - 子组件中定义可接受的属性,可以用来父组件给子组件传递数据 Output - 子组件中定义...
    99+
    2024-04-02
  • Angular中非父子组件间是如何通讯的
    本篇内容介绍了“Angular中非父子组件间是如何通讯的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!其实...
    99+
    2024-04-02
  • Vue3父子通讯方式及Vue3插槽的使用方法详解
    在Vue3中父子通讯方式 Vue3父传子(props) 父组件如下: <template> <div class="about"> <h1&...
    99+
    2023-01-28
    Vue3父子通讯方式 Vue3插槽的使用 Vue3组件父传子 Vue3组件子传父 Vue3组件通讯
  • Vue3的7种种组件通信详情
    目录1、Vue3 组件通信方式2、Vue3 通信使用写法2.1 props2.2 $emit2.3 expose / ref2.4 attrs2.5 v-model2.6 provi...
    99+
    2024-04-02
  • Vue3父子组件间通信、组件间双向绑定的方法
    父子组件可通过事件 进行通信前面的笔记 —— 《Vue3 | 组件的定义及复用性、局部组件、全局组件、组件间传值及其校验、单项数据流、Non-props属性》,单向数据流的概念,即子组件无法修改来自父组件的数据字段,假如确要修改,可以使用下...
    99+
    2023-05-15
    Vue3
  • Vue3父子组件间传参通信的四种方式
    目录前言一、父传子 defineProps二、子传父 defineEmits三、子组件暴露属性给父组件 defineExpose四、依赖注入Provide / Inject参考总结前...
    99+
    2023-05-19
    vue父子组件如何传递参数 vue父子组件传值的方法 vue组件传参方式
  • vue3中非父子组件如何传值
    小编给大家分享一下vue3中非父子组件如何传值,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue2中非父子组件的传值主要是通过事件总线,创建一个vue实例,通过在不同的组件中导入该实例来实现非父子组件之间的通信行为。vu...
    99+
    2023-06-22
  • vue父子组件间怎么进行通讯
    本文小编为大家详细介绍“vue父子组件间怎么进行通讯”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue父子组件间怎么进行通讯”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。如何解决组件之间通讯呢?解决方案:可以...
    99+
    2023-06-30
  • Vue组件通信之父传子与子传父详细讲解
    目录父组件传递给子组件浅谈Props子组件传递给父组件父组件传递给子组件 父组件传递给子组件:通过props属性;子组件传递给父组件:通过$emit触发事件; 这里我们知道,父组件...
    99+
    2022-11-13
    Vue组件通信 Vue组件通信父传子 Vue组件通信子传父
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作