vue 父组件中的事件可以直接挂在子组件吗?

比如我在父组件中传一个方法,但是在子组件中执行,应该怎么做呢?不使用$emit方式

阅读 1.9k
2 个回答

方法有多种,比较常用的是在子组件的porps定义个Function参数,父组件把方法当参数传入

子组件代码片段

export default {
  name: 'Children',
  props: {
    parentMethod: Function,
  },
  methods: {
    onClick() {
      this.parentMethod();
    },

父组件代码片段

<template>
  <children :parent-method="testMethod"></children>
</template>
<script>
  export default {
    methods: {
      testMethod() {
        console.log('test');
      },

这样当子组件触发onClick就调用父组件的testMethod,流程虽然比不上$on+$emit清晰,但是可维护性还是挺高的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题