Javascript 全局助手js函数的放置位置
我打算在整个Vue.js 2应用程序中(即在组件和vuex中)使用几个助手函数。我在这里使用的示例,Javascript 全局助手js函数的放置位置,javascript,vuejs2,vuex,Javascript,Vuejs2,Vuex,我打算在整个Vue.js 2应用程序中(即在组件和vuex中)使用几个助手函数。我在这里使用的示例,toCurrency,将数字转换为货币字符串。我想知道这个helper函数最好放在哪里。我现在把它放在我的store.js文件的顶部(显然我使用的是vuex),并在整个文件中调用它。然而,这意味着当我想在组件中使用它时,我还需要将它定义为方法。是否有更好的地方放置它们,这样我就不必继续定义它,或者这是最好的地方 import Vue from 'vue' import Vuex from 'vue
toCurrency
,将数字转换为货币字符串。我想知道这个helper函数最好放在哪里。我现在把它放在我的store.js
文件的顶部(显然我使用的是vuex
),并在整个文件中调用它。然而,这意味着当我想在组件中使用它时,我还需要将它定义为方法。是否有更好的地方放置它们,这样我就不必继续定义它,或者这是最好的地方
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
function toCurrency(num){
return "$" + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}
export default new Vuex.Store({
state: {
price: 2
},
getters: {
numString: state => {
return toCurrency(state.funds)
}
},
mutations: {
decrementOne: state => {
state.num --;
alert("Price decremented to " + toCurrency(state.funds))
}
}
})
这听起来像是一个完美的例子。基本上,我会首先设置一个地址,比如this.$helperfunctions
,然后继续将我的所有方法直接添加到这个实例成员上,之后它们将可供应用程序的其余部分使用
import myObjectFullOfMethods from '../somewhere/foo/bar.js';
new Vue({
beforeCreate: function() {
this.$helperfunctions = new myObjectFullOfMethods();
}
})
这看起来很棒。我可以在Vuex中使用这些吗?或者我需要在那里对它们进行优化吗?@JohnnyMetz在导入Vue实例的任何地方都可用:-)使用this.Vue.$helperfunctions
例如,是否有方法在Vuex.Store模块中使用它?。模块的上下文是Store
和nothis.Vue
那里..您的Vue实例始终在从“Vue”
导入Vue的范围内,这将始终返回Vuex中的主Vue实例。