2 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
樓上算一種方案。
如果你引入的 JS 不好獲得當(dāng)前實例的引用,比如你用單文件組件,那么可以在組件 mount 的時候把方法暴露到全局環(huán)境下
// Vue
export default {
mounted() {
window.someMethod = this.doSomething.bind(this);
},
}
// 在另一個 JS 里
someMethod();
不過這樣會導(dǎo)致不同的類深度耦合,屬于 bad smell。所以除非要做 jsonp 回調(diào)之類,最好不要使用??梢钥紤]用全局對象廣播和捕獲事件。
比如:
// Vue
export default {
mounted() {
document.body.addEventListener('some-event', this.onSomeEvent.bind(this));
}
}
// 別的 js
const event = new CustomEvent('some-event');
document.body.dispatchEvent(event);

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊
var vm = new Vue({
methods: {
hello () {
console.log('hello')
}
}
})
vm.hello()
添加回答
舉報