第一种
挂载到Vue的prototype上。把全局方法写到一个文件里面,然后for循环挂载到Vue的prototype上,缺点是调用这个方法的时候没有提示
Object.keys(tools).forEach(key => {
Vue.prototype[key] = tools[key]
})
当然,也可以逐个挂载
Vue.prototype.fun = ()=>{
console.log('1111')
}
通过this.fun()
调用即可
第二种
利用全局混入mixin,因为mixin里面的methods会和创建的每个单文件组件合并。这样做的优点是调用这个方法的时候有提示
Vue.mixin(mixin)
new Vue({
store,
router,
render: h => h(App),
}).$mount('#app')
import tools from "./tools"
import filters from "./filters"
import Config from '../config'
import CONSTANT from './const_var'
export default {
data() {
return {
CONFIG: Config,
CONSTANT: CONSTANT
}
},
methods: {
// 将tools里面的方法挂载到vue上,以方便调用,直接this.$xxx方法名就可以了
// Object.keys(tools).forEach(key => {
// Vue.prototype[key] = tools[key]
// })
// 将tools里面的方法用对象展开符混入到mixin上,以方便调用,直接this.$xxx方法名就可以了
...tools
},
filters: {
// 将filter里面的方法添加了vue的筛选器上
// Object.keys(filters).forEach(key => {
// Vue.filter(key, filters[key])
// })
...filters
}
}
相关阅读
VUE路由拦截:Vue自定义全局弹窗组件
uni-app 全局变量实现的4种方式
Vue全局指令:如何添加全局指令?(附2个常用自定义指令)
正文结束
Ctrl + Enter