在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ vue項(xiàng)目中引入外部js,怎么在外部js中執(zhí)行當(dāng)前頁(yè)中methods里的方法

vue項(xiàng)目中引入外部js,怎么在外部js中執(zhí)行當(dāng)前頁(yè)中methods里的方法

vue項(xiàng)目中引入外部js,怎么在外部js中執(zhí)行當(dāng)前頁(yè)中methods里的方法

回答
編輯回答
淺時(shí)光

樓上算一種方案。

如果你引入的 JS 不好獲得當(dāng)前實(shí)例的引用,比如你用單文件組件,那么可以在組件 mount 的時(shí)候把方法暴露到全局環(huán)境下

// Vue
export default {
  mounted() {
    window.someMethod = this.doSomething.bind(this);
  },
}

// 在另一個(gè) JS 里
someMethod();

不過(guò)這樣會(huì)導(dǎo)致不同的類深度耦合,屬于 bad smell。所以除非要做 jsonp 回調(diào)之類,最好不要使用。可以考慮用全局對(duì)象廣播和捕獲事件。

比如:

// Vue
export default {
  mounted() {
    document.body.addEventListener('some-event', this.onSomeEvent.bind(this));
  }
}

// 別的 js
const event = new CustomEvent('some-event');
document.body.dispatchEvent(event);
2017年10月1日 05:52
編輯回答
撿肥皂
var vm = new Vue({
  methods: {
    hello () {
      console.log('hello')
    }
  }
})

vm.hello()
2018年9月7日 21:29