首页 > 其他分享 >34-Vue脚手架-组件的自定义事件(使用自定义事件优化Todo-List案例)

34-Vue脚手架-组件的自定义事件(使用自定义事件优化Todo-List案例)

时间:2023-10-30 18:13:43浏览次数:33  
标签:Vue name 自定义 refs 事件 student 组件 Todo

组件的自定义事件

1.一种组件间通信的方式,适用于 子组件 ===> 父组件(这里也可以使用 props 传递数据进行实现)

2.使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的回调在A中)

3.绑定自定义事件:

1)第一种方式,在父组件中

<!--通过父组件给子组件绑定一个自定义事件实现:子给父传递数据(第一种写法,使用v-on 或 @)-->
<!--<Student v-on:malingshu="getStudentName"></Student>-->
<Student @malingshu="getStudentName" @demo="m1"></Student>

...
    
methods:{
    getStudentName(name){
        console.log("APP收到了学生的名字:", name)
        this.msg = name
    }  
}

2)第二种方式,在父组件中

<!--通过父组件给子组件绑定一个自定义事件实现:子给父传递数据(第二种写法,使用ref属性)-->
<!--ref 在组件标签上获取的是组件实例对象-->
<!--<Student ref="student"></Student>-->

...
    
methods:{
    getStudentName(name){
        console.log("APP收到了学生的名字:", name)
        this.msg = name
    }  
},
mounted(){
    // 获取方式:this.$refs.xxx
    // this.$refs.student.$on 绑定自定义事件
    this.$refs.student.$on("malingshu", this.getStudentName)

    // this.$refs.student.$once 绑定自定义事件(一次性)
    // this.$refs.student.$once("malingshu", this.getStudentName)
}

3)若想让自定义事件只能触发一次,可以使用once修饰符,或$once方法

 

标签:Vue,name,自定义,refs,事件,student,组件,Todo
From: https://www.cnblogs.com/REN-Murphy/p/17798479.html

相关文章

  • vue关于render函数如何渲染v-html
    render函数如何渲染v-html,两种方式(适用于搜索关键字高亮) 例子:“互联网数据”搜索关键字"网"==>row.htmlStr:互联<spanclass="search-text">网</span>数据render:(h,{row})=>{//模板组件方式returnh({template:"<span>"+row.htmlStr+"&l......
  • Vue 3中toRaw和markRaw的使用
    文章目录Vue3的响应性系统使用`toRaw`使用`markRaw`使用场景1.与第三方库交互2.提高性能3.避免无限循环总结......
  • vuex
    一、概念:1.为什么要用vuex?传统:每个页面都要去重新请求后台得到将数据存到session、cookie中作用:专门为vue.js设计的集中式状态管理架构.数据仓库,主要管理状态(共用的属性或数据).把数据进行共享,每个页面想用,都可以来调用.......
  • Qt第六十五章:自定义菜单栏的隐藏、弹出
    目录一、效果图二、qtDesigner三、ui文件如下:四、代码 一、效果图二、qtDesigner原理是利用属性动画来控制QFrame的minimumWidth属性。①先拖出相应的控件②布局一下 ③填上一些样式 相关QSSbackground-color:rgb(238,242,255);border:2pxsolidrgb(255,255,255);border......
  • vue中attrs的使用
    vue中attrs的使用1.attrs的作用用来进行子孙组件之间的数据传递接收父组件传过来,但是又没有在props中定义的数据。(class及style除外)2.父子组件之间数据传递的用法爷爷组件-grandpa:<template><div><span>爷爷</span><Son:phone="phone"sex="男"......
  • python 飞书 获取飞书租户访问令牌 自定义机器人 向webhook_url发送POST请求
    importjsonimportrequestswebhook_url=post_data=#见应用凭证#获取飞书租户访问令牌,用于调用飞书开放平台的其他API接口#url:飞书开放平台的获取租户访问令牌的API接口地址url=r"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/"r=......
  • vue3 + vite 的Excel表格的导入导出
    一、安装XLSX插件yarnaddxlsx或者npmixlsx二、引入插件在你需要的页面或者在main.js中引入import*asXLSXfrom'xlsx'三、导出Excel3.1核心api①xlsx.utils.book_new() 新建工作簿② xlsx.uti......
  • Vue2 实现印章徽章组件
    Vue2实现印章徽章组件需要实现的组件效果:该组件有设置颜色、大小、旋转度数和文本内容功能。一、组件实现代码<template><divclass="first-ring"v-bind="getBindValue":class="getStampBadgeClass":style="{transform:`rotate(${rotate}deg)`}&qu......
  • [WEB安全] XSS攻击防御 Vue
    一、概念XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、Flash或者甚至是普通的HTML。攻击成功后,攻击者可......
  • [Vue]列表渲染v-for
       1.用于展示列表数据  2.语法:v-for="(item,index)inxxx":key="yyy"  3.可遍历:数组、对象、字符串(不常用)、指定次数(不常用) <body><divid="root"><!--遍历数组--><h2>人员列表</h2><ul&g......