Vue2:用ref方式绑定自定义事件的注意事项

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

一、场景描述

我们知道绑定自定义事件可以用ref方式实现。
但是,这个方式,需要注意下,否则,实现不了我们的效果。

需求是这样的,我们通过ref绑定的事件,来给Appdata块中的变量赋值。

二、绑定自定义事件

基本写法:
父组件App
methods函数:

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

Student组件绑定自定义事件test

        mounted() {
            this.$refs.student.$on('test',this.getStudentName) //绑定自定义事件(一次性)
        }

此处的this是谁了?
其实,是Student组件的vc实例。Vue约定,谁触发的事件,那么,这个this就是谁。
但是,此处的this调用的函数,在App组件的methods中,所以,在getStudentName函数中的this,又变成了App组件的vc实例。

无效写法

            this.$refs.student.$on('test',function () {
                console.log('App收到了学生名:',name,params)
                this.studentName = name
            })

原因就是,此时function里面的thisStudentvc实例,无法获取到studentName变量,所以,赋值失败。

改进写法:

            //这种写法,可以给studentName变量赋值。
            this.$refs.student.$on('test',(name,...params) => {
                console.log('App收到了学生名:',name,params)
                this.studentName = name
            })

换成箭头函数,就可以实现基本写法的效果。为什么了?
因为,箭头函数没有自己的this,于是,Vue需要向外部寻找,这是,找到的this就是App组件的vc实例。
从而实现对studentName变量的赋值。文章来源地址https://www.toymoban.com/news/detail-806446.html

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

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

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

相关文章

  • vue - 动态绑定ref(使用变量)以及获取方式,解决v-for循环嵌套自定义子组件时无法this.$refs.xx找到动态组件的情况(详细示例教程)适合 vue.js nuxt.js uniapp

    正常情况,我们需要在vue中获得某个dom或者组件,我们会通过绑定 ref 然后通过绑定后的名字来获取这个dom 。 但是,如果我们在v-for中绑定ref的话,那么这个ref就会存在多个,比如我们点击事件让对应的显示/隐藏的话,我们很难找到这个对应的元素。 那么,这时我们需要动

    2024年02月13日
    浏览(53)
  • Vue2-浏览器本地存储(WebStorage)及完善TodoList案例、组件自定义事件及完善TodoList案例

    🥔:山不向我走来,我便向它走去 更多Vue知识请点击——Vue.js 存储内容大小一般支持5MB左右(不同浏览器可能还不一样) 浏览器端通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制。 1.相关API (1) xxxxxStorage.setItem(\\\'key\\\', \\\'value\\\'); 该方法接受一个键和值作为参

    2024年02月12日
    浏览(55)
  • Java中方法的定义及注意事项

    什么是方法: 方法(method)是程序中最小的执行单元 实际开发中,什么时候用到方法: 重复的代码、具有独立功能的代码可以抽取到方法中 实际开发中,方法有什么好处: 可以提高代码的复用性 可以提高代码的可维护性 当我们要计算不明确的数的时候,就可以用带参数的

    2023年04月22日
    浏览(51)
  • Allegro引流方式有哪些?Allegro平台注意事项

    正确的引流,你的平台才会让更多人发现,才能提高转化率,那么Allegro引流方式有哪些,Allegro平台注意事项是什么呢? Allegro引流方式有哪些 商品优化: 在Allegro上,关键是确保您的商品能够在搜索结果中排名靠前。优化您的商品标题、描述和,确保它们与用户的搜索

    2024年02月09日
    浏览(44)
  • Tomcat中<Context>标签的使用方式和注意事项

    说明:是用于配置 Tomcat 中的 Web 应用程序上下文的元素(例:我现在需要部署两个Web应用,部署一个前端 web应用需要访问\\\"/“导航到主页面。后端 web应用需要访问”/admin\\\"导航到后端页面,我们现在就可以在使用一个Tomcat的情况下通过 Context 这个标签去配置来实现上面的功能

    2024年02月07日
    浏览(37)
  • 结构体的使用和结构体指针的定义注意事项

    1、使用背景      由于想把不同地方的三个变量数据存放在一个结构体中,并且调用W25QXX_Write((u8*)p,FLASH_SIZE-100,SIZE); //从倒数第100个地址处开始,写入SIZE长度的数据。调用flash写数据函数,其参数为指针地址,于是需要定义一个结构体和指向结构体的指针,这样调用flash写函数

    2024年01月20日
    浏览(54)
  • std::map使用方式以及注意事项(关于相同key的问题)

    std::map的使用在C++开发中也是经常会用到的一些东西,这里进行一些简单的使用记录,包括如何插入、删除以及修改等。 map的插入使用的是insert的方式,一个map包含了key与value两个值。首先需要对两个值进行赋值,然后对map执行insert操作,简单代码如下: 注意在map中,key值是

    2024年02月15日
    浏览(48)
  • SpringBoot 使用validator进行参数校验(实例操作+注意事项+自定义参数校验)

    ①、引入依赖 ②、创建实体类 ③、建立控制层 ④、进行测试 作为测试demo,到这里就可以直接测试了 ①、@NotNull ,@NotEmpty 和 @NotBlank 三者的区别 @NotNull、@NotEmpty 和 @NotBlank 都是用于Java中进行参数校验的注解,它们之间的区别如下: @NotNull 注解用于限制参数不能为null。 @N

    2024年02月07日
    浏览(47)
  • vue3中setup的两个参数 props,context (attrs,emit,slots),vue3中的双向数据绑定自定义事件emit和v-model

    目录 setup函数 props参数 案例 第一种写法(用setup函数的方式):  第二种方法(语法糖形式即setup写入script标签中)也可以传值,  context (attrs,emit,slots) vue3中的双向数据绑定自定义事件emit和v-model emit自定义事件 v-model 有两个参数分别是 props,context 即 props参数是一个 对象 ,

    2024年02月10日
    浏览(43)
  • Unity-ML-Agents注意事项及报错、警告等解决方式

    在 ml-agents 0.16.0 版本中,Unity 中的 ML-Agents 插件中包含了名为 Brain 的组件,用于控制智能体的决策过程。然而,在 ml-agents 0.28.0 版本中,该组件已经被重构为 IAgent 接口和 Agent 类。因此,如果您正在使用 ml-agents 0.28.0 或更高版本,您不会在 Unity 的 \\\"Add Component\\\" 菜单中找到 Br

    2024年02月09日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包