Vue 中子组件调用父组件不可调用的问题解决

Vue 中子组件调用父组件不可调用的问题解决

触发场景

在原来的两个页面中(A和B),共用一个子组件(C),使用this. p a r e n t . f n 的 方 式 调 用 父 组 件 函 数 , 没 有 问 题 。 后 面 因 为 业 务 关 系 , 把 两 个 页 面 整 合 成 一 个 页 面 , 其 中 一 个 页 面 变 成 子 组 件 , 也 就 是 A 成 为 父 组 件 , B 成 为 子 组 件 , C 还 是 A 和 B 的 子 组 件 , 这 个 时 候 , C 组 件 使 用 t h i s . parent.fn的方式调用父组件函数,没有问题。后面因为业务关系,把两个页面整合成一个页面,其中一个页面变成子组件,也就是A成为父组件,B成为子组件,C还是A和B的子组件,这个时候,C组件使用this. parent.fnABCABC使this.parent.fn去调用父组件,失效。解决方式:
this.$emit(‘fn’)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,子组件可以通过不同的方式调用组件的方法。其中,常见的方式有两种。 第一种方式是通过在子组件中使用`$emit`方法来触发组件中的方法。子组件可以通过`this.$emit('xxx')`来触发组件中的`xxx`方法。在组件中,需要在子组件标签上监听该事件,并绑定对应的方法名。例如,组件中的代码可以是: ```html <template> <div> <child @xxx="fatherMethod"></child> </div> </template> <script> import child from '~/components/dam/child'; export default { components: { child }, methods: { fatherMethod() { console.log('测试'); } } }; </script> ``` 第二种方式是通过将组件的方法名传递给子组件,在子组件调用该方法。组件需要在子组件标签上使用冒号(`:`)来将方法名传递给子组件。在子组件中,可以直接使用`this.$parent.methodName`来调用组件中的方法。例如,组件中的代码可以是: ```html <template> <div> <child :fatherMethod="fatherMethod"></child> </div> </template> <script> import child from '~/components/dam/child'; export default { components: { child }, methods: { fatherMethod() { console.log('测试'); } } }; </script> ``` 以上是两种常见的在Vue中子组件调用组件方法的方式。根据具体的需求和场景,可以选择适合的方式来实现子组件组件之间的方法调用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue组件调用组件的所有方法](https://blog.csdn.net/chuziyan/article/details/122088972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值