javascript - vue.js自定义事件如何触发的?

 张伊韵育财育信 发布于 2022-11-27 10:41


Messages: {{ messages | json }}

如上代码中,自定义的child-msg事件是如何触发的并最终执行了handleIt函数?

3 个回答
  • 当你点击button的时候执行了buttonclick事件,然后执行了notify方法,然后在notify方法里面dispatch了你自定义的handleIt事件,也就是说是依赖buttonclick事件
    可以参考下这里:http://cn.vuejs.org/api/#vm-dispatch

    2022-11-27 11:40 回答
  • 我觉得代码是不是有点问题?没看到哪里触发child-msg事件啊?

    Vue.component('child', {
      template: '#child-template',
      data: function () {
        return { msg: 'hello' }
      },
      methods: {
        notify: function () {
          if (this.msg.trim()) {
            this.$dispatch('child-msg', this.msg);//这里应该改成child-msg吧,否则代码就真的理解不了了
            this.msg = ''
          }
        }
      }
    })
    2022-11-27 11:40 回答
  • 這邊其實並沒有被觸發,因為並沒有名為 child-msg 的事件被 dispatch

    v-on:child-msg="handleIt"

    真正被觸發的是你寫在這邊的 events

      events: {
        'handleIt': function (msg) {
          this.messages.push(msg)
        }
      }

    如果你是想靠 v-on:child-msg="handleIt" 來處理事件的話,你應該是要把 handleIt 放在 methods 裡面,然後 this.$dispatch('child-msg', this.msg) 才對。

    這裡我稍稍修改了你的代碼:https://jsfiddle.net/tomoeba/97kmbrye/1/

    2022-11-27 11:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有