首页 > 其他分享 >Vue.js框架:vue3版本父子组件之间的传值和事件触发

Vue.js框架:vue3版本父子组件之间的传值和事件触发

时间:2023-10-23 09:03:39浏览次数:35  
标签:Vue const sonMessage js defineEmits vue3 组件 传值

一、子组件

  使用vue3官方提供的setup语法糖中给出的defineEmitsdefineProps来定义父子间的传参值和关联方法(useContext在3.2版本之后已去除)。

    <script setup lang="ts">
    import { defineProps, defineEmits } from 'vue'

    const emitEvents = defineEmits(['son-click'])
    const props = defineProps({
        message: String
    })

    const sonClick = () =>{
        emitEvents('son-click',"子组件返值")
    }
    </script>
    <template>
        <div>
            <div>
                测试父组件->子组件传值消息:{{ props.message }}
            </div>
            <el-button type="primary" @click="sonClick">
                测试按钮
            </el-button>
        </div>
    </template>

二、父组件

  父组件中引入子组件,并在使用子组件时传参和定义子组件中事件的回调方法。

    <script setup lang="ts">
    import { ref } from "vue"
    import Son from "./SonComponent.vue"

    let sonMessage = ref("")

    const fatherClick = (context) => {
        sonMessage.value = context
    }
    </script>
    <template>
        <Son message="父组件传值" @son-click="fatherClick"></Son>
        <br />    
        <div>
            测试子组件->父组件传值消息:{{ sonMessage }}
        </div>
    </template>

三、运行结果

  父组件传值在初始化时直接给到子组件,点击子组件的按钮后通过回调返回到父组件进行展示:

  

四、数据流转

  1、父->子传递message参数

  

  2、子->父传递sonMessage参数

  

 

标签:Vue,const,sonMessage,js,defineEmits,vue3,组件,传值
From: https://www.cnblogs.com/guobin-/p/17777486.html

相关文章

  • js_doucment.styleSheets获取StyleSheetList接口
    通过document.styleSheets可以获取到一个StyleSheetList接口constaStyleList=document.styleSheetsconsole.log(aStyleList.constructor.name)//StyleSheetListconsole.log(Object.prototype.toString.call(aStyleList))//[objectStyleSheetList]console.log(Arra......
  • Vue源码学习(十三):nextTick()方法
    好家伙,nextTick,(...这玩意,不太常用) 1.什么是nextTick在Vue中,nextTick是一个用于异步执行回调函数的方法。它在Vue更新DOM后被调用,以确保在下一次DOM更新渲染完成后执行回调函数。而事实上,我们把队列处理的操作封装到了nexrTick方法中. 实际上,Vue在更新DOM时是异步执......
  • 【2023最新教程】有道翻译js 超详细!!!
    目录前言确定加密字段破解加密字段加密字段实现破解返回值跟踪堆栈找到解密后的返回值函数实现解密返回值语言转换完整代码效果展示前言有道翻译两个加密第一个是表单的sign用MD5加密可以点击目录的加密字段实现直接跳转第二个是返回值AES加密,而且AES的密匙他还用md5加......
  • 一键解决json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    json.decoder.JSONDecodeError:Expectingvalue:line1column1(char0)文章目录问题描述解决思路解决方法问题描述json.decoder.JSONDecodeError:Expectingvalue:line1column1(char0)解决思路JSONDecodeError是指在使用json.loads()方法时,解析JSONJSONDecodeError是......
  • cube.js node addon 开发使用的框架neon 简单说明
    cube.jsnodeaddon的开发使用了neon框架,基于neon开发nodeaddon的好处是简单,而且开发上比较类似node的开发模式但是缺点也有不少,比如napi-rs支持方便的typescript类型定义生成,可以方便我们使用,对于neon这个issue大家已经提议很久了,应该是实现上问题比较多,官方还是没有实......
  • BUG:net::ERR_CONNECTION_REFUSED(前端Vue2、后端FastAPI)
    BUG场景一个前后端分离的项目,前端使用Vue2框架,后端使用FastAPI,前端想要传输图片给后端,使用的相关接口为:'http://10.96.67.161:8081/uploadImg/'后端FastAPI运行的代码为:if__name__=='__main__':uvicorn.run(app="main:app",host="localhost",port=8081,reload=Tr......
  • JS加密/解密之闭包的运用
    深入探讨JavaScript闭包的演变与应用摘要:本文将深入探讨JavaScript闭包的概念、特性以及其在实际开发中的应用。我们将从闭包的起源开始,探讨它在JavaScript编程中的重要性,并通过实例展示闭包在不同场景下的灵活应用。引言JavaScript作为一种高度灵活的编程语言,一直以其独特的特性......
  • PostgreSQL 不支持 union 查询 json
    当在使用PostgreSQL数据库查询数据的时候,因为查询出来的列中包含格式为json的字段进行union报错了,该操作不支持json类型,使用unionall也是同样错误最后查阅资料得出,需要转换为jsonb才行,需要使用函数to_jsonb(你的json字段),之后,union和unionall就都可以了json与jsonbPostgre......
  • vue
    1.文本:{{data}}注:①.用双大括号{{}}引住的内容被称为"Mustache"语法.2.原始html:<divv-html="data"></div>3.属性:<divv-bind:id="testId"></div>注:①.如chcked值绑定.4.表达式:{{num+1}}{{ok?'1':'0......
  • springboot+vue学习(2)
    1、ref :为子组件指定一个索引ID,给元素或者组件注册引用信息。refs是一个对象,包含所有的ref组件。<divid="parent"><user-profileref="profile"></user-profile>(子组件)</div>varparent=newVue({el:'#parent'})//访问子组件varchild=parent.$ref......