vue中methods定义的方法如何全局可以调用?

//index.vue
methods: {
  uploadImageFinish (data) {
      alert(data)
    }
}

app端要通过调用

javascript:uploadImageFinish()

clipboard.png

我发现直接在html中写就可以调用

<body>
  <script>
  function uploadImageFinish() {
    alert(111)
  }
  </script>
</body>

所有应该是作用域的问题。
vue中methods定义的方法如何全局可已调用?

阅读 8.7k
4 个回答

mounted的时候写下window.uploadImageFinish = this.uploadImageFinish;不就可以了。

可以在相应的钩子里面把组件暴露到全局

methods: {
  uploadImageFinish (data) {
    alert(data)
  }
},
created() {
  window.vm = this;
},

这样组件外可以直接用全局vm.uploadImageFinish 调用这个函数了

在你的main.js里面加入下面代码,全局混用,想怎么调,想在哪儿调都行

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