我有一个Vue 2项目,有很多(50+)single-file components个.我使用Vue路由进行路由,Vuex用于状态.
有一个名为helpers.js的文件,其中包含一系列通用函数,例如将字符串的第一个字母大写.此文件如下所示:
export default {
capitalizeFirstLetter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
}
My main.js文件初始化应用程序:
import Vue from 'vue'
import VueResource from "vue-resource"
import store from "./store"
import Router from "./router"
import App from "./components/App.vue"
Vue.use(VueResource)
const app = new Vue({
router: Router,
store,
template: '<app></app>',
components: { App },
}).$mount('#app')
My App.vue文件包含以下模板:
<template>
<navbar></navbar>
<div class="container">
<router-view></router-view>
</div>
</template>
<script>
export default {
data() {
return {
// stuff
}
}
}
</script>
然后,我有一堆单文件组件,Vue Router可以处理这些组件,导航到应用程序中的<router-view>
标签内.vue模板.
现在假设我需要在SomeComponent.vue中定义的组件中使用capitalizeFirstLetter()
函数.为了做到这一点,我首先需要导入它:
<template>Some Component</template>
<script>
import {capitalizeFirstLetter} from '../helpers.js'
export default {
data() {
return {
myString = "test"
}
},
created() {
var newString = this.capitalizeFirstLetter(this.myString)
}
}
</script>
这很快就会成为一个问题,因为我最终将函数导入到许多不同的组件中,如果不是全部的话.这似乎是重复的,也使项目更难维护.例如,如果我想重命名助手.js或其中的函数,然后我需要进入导入它的每个组件,并修改import语句.
Long story short:如何在助手中实现这些功能.js globally可用,这样我就可以在any组件内调用它们,而不必先导入它们,然后在函数名前加上this
?我基本上希望能够做到这一点:
<script>
export default {
data() {
return {
myString = "test"
}
},
created() {
var newString = capitalizeFirstLetter(this.myString)
}
}
</script>