关于vue.js $on

首先感谢您的关注!

我在自己尝试写一些ui组件,比如分页组件,会有一些回调函数,知道应该用$emit去调用,但是我不知道该在什么位置写$on,我看了一些ui组件的源码

 this.$emit('pageSizeChange', val)
 this.$emit('page-size-change', val)

注册事件应该写在什么位置呢?应该写在父组件里吗?

阅读 9.5k
2 个回答

一般是回调函数写在父组件里面,然后通过props传递给分页组件,点击后调用父级传过来的回调吧

假設現在有個分頁組件 Pagination,裡面大概的代碼是:

{
   methods: {
      onPageChange() {
         this.$emit('page-change', this.currentPage);
      }
   }
}

代表說再換頁時會 emit 一個事件

那父組件就會這樣接收:

<template>

    <pagination :page-change="onPageChange"></pagination>
  
</template>
<script>
    export default {
        // ....
        methods: {
            onPageChange(page) {
                console.log(page);
            }
        }
    }
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题