为了账号安全,请及时绑定邮箱和手机立即绑定

vue项目中引入外部js,怎么在外部js中执行当前页中methods里的方法

vue项目中引入外部js,怎么在外部js中执行当前页中methods里的方法

慕运维8079593 2019-03-08 16:15:39
vue项目中引入外部js,怎么在外部js中执行当前页中methods里的方法
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

楼上算一种方案。


如果你引入的 JS 不好获得当前实例的引用,比如你用单文件组件,那么可以在组件 mount 的时候把方法暴露到全局环境下


// Vue

export default {

  mounted() {

    window.someMethod = this.doSomething.bind(this);

  },

}


// 在另一个 JS 里

someMethod();

不过这样会导致不同的类深度耦合,属于 bad smell。所以除非要做 jsonp 回调之类,最好不要使用。可以考虑用全局对象广播和捕获事件。


比如:


// Vue

export default {

  mounted() {

    document.body.addEventListener('some-event', this.onSomeEvent.bind(this));

  }

}


// 别的 js

const event = new CustomEvent('some-event');

document.body.dispatchEvent(event);


查看完整回答
反对 回复 2019-03-22
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

var vm = new Vue({

  methods: {

    hello () {

      console.log('hello')

    }

  }

})


vm.hello()


查看完整回答
反对 回复 2019-03-22
  • 2 回答
  • 0 关注
  • 561 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信