You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一页面多Vue实例下,为何无法通过v-on:click直接调用另一实例的方法?

问题原因解析

Vue 模板中的所有表达式、事件绑定的函数调用,仅能访问当前绑定实例的作用域内的属性和方法,不会自动访问全局作用域的变量。
你写在#app节点内的v-on:click表达式,归属app_1实例管理,查找变量时只会遍历app_1自身的data、methods、computed、props等实例属性,你没有将menu_mobile挂载到app_1的实例属性上,自然找不到这个变量,调用就会失效。

第二种写法生效的原因是:你定义在app_1内部的show_mobile_menu方法,函数的作用域继承自你定义Vue实例时的JS上下文,这个上下文可以访问到全局声明的menu_mobile变量,所以内部调用menu_mobile.show_menu()是可以正常寻址的。

如果希望直接在模板里调用,只需要把menu_mobile挂载到app_1的实例上即可,示例如下:

var app_1 = new Vue({
  el: '#app',
  data: {
    // 将全局实例挂载到当前实例的data属性中,模板就能直接访问
    menu_mobile: menu_mobile 
  }
})

配置完成后原来的v-on:click="menu_mobile.show_menu()"就可以正常运行。

内容的提问来源于stack exchange,提问作者ORStudios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:54:04