场景:一个公共js文件,在这个文件中需要使用路由跳转,this.$router.push会报错,经分析是因为在js文件中this指向为undefined
解决:由于我在vue文件是需要引用该js文件中的方法的,所以在vue文件的created中将this指向的vue实例发送给js文件,js文件中写一个function用来接收this即可
vue文件
import { receive } from 'xx.js'
export default() {
created() {
receive(this)
}
}
js文件
let _this = null
export function receive(vm) {
_this = vm
}