vue组件无法使用公共方法吗?

在使用vue组件的时候发现公共方法用不了,直接报错undefined

在main.js里面写了Vue.prototype.isApp = true;

后面引入了公共js文件import commonFn from '#static/js/common.js

Vue.prototype.commonFn = commonFn;

然后在组件里面打印了this.isApp为true,然后使用公共方法this.commonFn就报错undefined。

在其他页面使用this.commonFn是正常的。就组件里面不行。

然后试了window.app.commonFn也不行。

有大神知道这是怎么回事吗?望指教一下。

以下图片为:common.js
image.png

以下图片为main.js
image.png

以下图片为app.vue使用组件
image.png

以下为组件内使用
image.png

阅读 3k
3 个回答

应该是 common.js 文件的问题,文件内的方法需要 export 才可以在组件里用

如果是逻辑的复用可以将 mixin 封装成插件。如果是公共方法可以通过 esm 的方式使用。

Vue.prototype.commonFn = commonFn; 然后在组件里面打印了this.isApp为true,然后使用公共方法this.commonFn就报错undefined。

很显然,这里出现的问题你需要检查 commonFn 的导出和导入语法是否正确。

是不是路径的问题,不要用#,用相对路径试一下

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