Vue2:给组件绑定自定义事件

这篇具有很好参考价值的文章主要介绍了Vue2:给组件绑定自定义事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、场景描述

我们在页面开发中,难免要使用事件。
在之前的学习中,我们学过@click、@keyup、@change等事件,这些是Vue自带的事件。
它一般是用在原生的HTML元素上的。在组件上使用需要加native修饰
比如:

h1绑定一个click事件:
<h1 @click="test">你好</h1>
input绑定一个keyup事件:
<input type="text" @keyup.enter="add"/>
在组件上绑定一个Vue原生事件:
<School @change.native="delete"/>

这一篇说的自定义事件,可以绑定到我们自己的Vue组件上。
实现子组件给父组件传递数据的功能。
比如:

<School :getSchoolName="getSchoolName"/>

二、绑定自定义事件

方式1

使用@或v-on方式绑定自定义事件

App父组件中:
模板代码:

 <Student @test="getStudentName"/>

methods函数:

getStudentName(name,...params){
    console.log('App收到了学生名:',name,params)
}

Student子组件中:
模板代码:

<button @click="sendStudentlName">把学生名给App</button>

methods函数:

            sendStudentlName(){
                //触发Student组件实例身上的test事件
                this.$emit('test',this.name,666,888,900)
            }

方式2

使用ref方式绑定自定义事件
App父组件中:
模板代码:

<Student ref="student"/>

mounted属性:

        mounted() {
            //设置三秒后再绑定事件
            // setTimeout(() => {
            //     this.$refs.student.$on('test',this.getStudentName) //绑定自定义事件    第一个参数是事件名称,第二个参数是函数名称
            // },3000);
            // this.$refs.student.$on('test',this.getStudentName) //绑定自定义事件    第一个参数是事件名称,第二个参数是函数名称
            this.$refs.student.$once('test',this.getStudentName) //绑定自定义事件(一次性)
        }

Student子组件中:
方式1相同

三、总结

原则:给那个组件的vc实例绑定事件,就由那个组件的vc实例来触发事件
相对来讲,第二种方法更灵活,第一种方法更简便,各有优势,视具体情况选择使用。文章来源地址https://www.toymoban.com/news/detail-803757.html

到了这里,关于Vue2:给组件绑定自定义事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vue父子组件之间双向数据绑定的(vue2/vue3)

    vue父子组件之间双向数据绑定的四种方法(vue2/vue3) vue考虑到组件的可维护性,是不允许子组件改变父组件传的props值的。父组件通过绑定属性的方式向子组件传值,而在子组件中可以通过$emit向父组件通信(第一种方式),通过这种间接的方式改变父组件的data,从而实现子组

    2024年02月08日
    浏览(37)
  • react和vue2/3父子组件的双向绑定

    react和vue2/3父子组件的双向绑定

    目录 Vue3 父子传值:props(attrs)/emit 父传子 props 父child :属性名=\\\"变量\\\" 子props=defineProps({属性名:type...}) attrs父作用域(除 class、 style 、 props )属性集合 父child :属性名=\\\"变量\\\",属性名=\\\"常量\\\" 子 attrs = useAttrs() 子传父emits+@=v-on: 父child @事件名\\\"=\\\"parentClick\\\",parentClick(msg) 子emi

    2024年02月16日
    浏览(13)
  • Vue2:解绑自定义事件

    上一节,我们学习了,自定义事件绑定到组件上。 现在,我们学习下,给组件解绑自定义事件的几种方法。 首先,我们试想一下,这个功能的适用场景? 一般同学都会想,解绑?那就注释掉代码就是了呗。 这个办法也可以,但是,不好,因为每次都要修改代码。 现在,我

    2024年01月18日
    浏览(6)
  • vue2--1. 内容渲染指令 2. 属性绑定指令 3. 事件绑定 4. v-model 指令 5. 条件渲染指令

    2. 属性绑定指令 3. 事件绑定 4. v-model 指令 5. 条件渲染指令) List item 推荐大家安装的 VScode 中的 Vue 插件 Vue 3 Snippets https://marketplace.visualstudio.com/items?itemName=hollowtree.vue-snippets Vetur https://marketplace.visualstudio.com/items?itemName=octref.vetur 什么是 vue 构建用户界面 用 vue 往 html 页面中填充

    2024年02月05日
    浏览(22)
  • vue2中祖父组件和孙组件事件通信

    1、使用 p a r e n t 属性访问祖父组件,并通过 parent属性访问祖父组件,并通过 p a re n t 属性访问祖父组件,并通过 emit方法触发祖父组件的事件 2、使用provide和inject方法,在祖父组件中提供一个方法或属性,孙组件中通过inject方法获取这个方法或属性,并在孙组件中调用该方

    2024年02月13日
    浏览(8)
  • 在vue2使用v-model对组件进行双向绑定

    v-model=“visible” 等价于 :value=“visible” 加上 @input=“visible = $event” 所以 v-model 就是父组件向子组件传了个 value 字段的值,子组件使用 props 定义 value 字段, 就可以在子组件使用 value 读取这个值;子组件使用 $emit(‘input’,值) 就可以改变 v-model 的值 父组件 子组件 父组件 子

    2024年02月10日
    浏览(7)
  • 什么???你连vue中父组件怎么监听子组件的事件都不知道?快来看看vue2和vue3中父组件监听子组件事件的区别吧

    vue2和vue3中父组件监听子组件事件的区别 在Vue 2中,可以使用$emit方法在子组件上触发自定义事件,并使用v-on或@指令在父组件中监听该事件,也就是通过父组件给子组件绑定一个自定义事件实现子给父传递数据。例如: 在这个例子中,当子组件中的按钮被单击时,将触发ch

    2024年02月12日
    浏览(10)
  • Vue2和vue3中双向数据绑定的原理,ES6的Proxy对象代理和JavaScript的Object.defineProperty,使用详细

    简介: Object.defineProperty大家都知道,是vue2中双向数据绑定的原理,它 是 JavaScript 中一个强大且常用的方法,用于定义对象属性,允许我们精确地控制属性的行为,包括读取、写入和删除等操作; 而Proxy是vue3中双向数据绑定的原理,是ES6中一种用于创建代理对象的特殊对象,

    2024年02月15日
    浏览(7)
  • vue2自定义封装图片预览组件

    前言:预览图片现在已经有成熟的组件了,比如element ui的图片预览功能,但是现实开发过程中,element ui图片预览已经不满足需求了,比如涉及预览时删除图片以及下载图片 自定义封装图片预览组件 功能:滚轮滚动图片放大、还原图片、左旋转、右旋转、上一张、下一张、删

    2024年01月18日
    浏览(13)
  • 前端(四)——vue.js、vue、vue2、vue3

    前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包