vue中用js在写工具类方法时,如果方法有this.$store这样类似的语句,需要vue中的属性,怎样能避免在其他vue界面中调用工具方法中的函数时,出现this无法找到需要的方法
在Vue中,
this
关键字指向的是当前Vue实例。当你在一个工具类方法中使用this
时,你希望它指向的是调用该方法的Vue组件实例。为了实现这一点,你需要确保该方法被绑定到正确的this
上下文中。
有两种常见的方法可以解决这个问题:
- 使用箭头函数(arrow function):
箭头函数不会创建自己的
this
上下文,它们从封闭的上下文中获取this
(即它们所在的上下文)。因此,如果你把工具类方法定义为箭头函数,this
将指向调用该方法的Vue组件实例。
javascript
export default {
methods: {
myUtilityMethod: () => {
this.$store.commit('someMutation');
}
}
}
- 使用绑定(binding):
在调用工具类方法时,你可以显式地把
this
绑定到方法上。这样,即使在方法内部,this
也会指向调用该方法的Vue组件实例。
export default {
methods: {
myUtilityMethod: () => {
this.$store.commit('someMutation');
}
}
}
以上两种方法都可以解决你的问题,你可以根据你的具体需求来选择合适的方法。