如何在 vue 组件中重用全局 javascript 文件
How to reuse a global javascript file within a vue component
我有一个从 lang.min.js 创建的 Lang 对象来自:
https://github.com/rmariuzzo/Lang.js
在我的 Laravel 应用程序中,我在 app.js
中有以下内容:
import SearchToggle from './components/toggle.vue'
import Lang from './lang.min.js'
...
Vue.component('toggle', Toggle);
...
var lang = new Lang();
lang.setMessages(require('./messages.js'));
console.log(lang.getLocale());
console.log(lang.get('main.specialties'));
...
lang 对象没有错误并设法按预期输出 get。
现在我在以下目录中有一个 vue 组件,如上所示导入:
ressource/assets/js/components/toggle.vue
在脚本部分:
<script>
export default{
data(){
return {
text_holder: lang.get('main.specialties'),
}
},
...
}
但是这不起作用。它抱怨 lang 未定义。
我想我错过了 javascript 范围的差距(概念)。我认为如果所有内容都在 app.js 中并被导入,那么 var lang 将在全局范围内,我将被允许在导入过程中的任何地方使用它(类似于 vendor 来自 php)
我猜不是。
现在我该怎么办?
在每个 vue 组件上引入一个导入(但是我必须确保向后的路径是正确的,并且多次加载同一个对象/message.js 会使 javascript.
膨胀
非常感谢 JS 的帮助。
创建您的 lang.js
,并导出 lang 实例
var lang = new Lang();
lang.setMessages(require('./messages.js'));
...
export default lang;
然后您可以在您的组件中导入并使用该实例
import lang from 'path/to/lang'
export default {
data () {
return {
text_holder: lang.get('main.specialties'),
...
}
}
}
另一种方法是写plugins,你可以将lang
注入到Vue中,这样你就可以在你的组件中访问lang
。
我有一个从 lang.min.js 创建的 Lang 对象来自:
https://github.com/rmariuzzo/Lang.js
在我的 Laravel 应用程序中,我在 app.js
中有以下内容:
import SearchToggle from './components/toggle.vue'
import Lang from './lang.min.js'
...
Vue.component('toggle', Toggle);
...
var lang = new Lang();
lang.setMessages(require('./messages.js'));
console.log(lang.getLocale());
console.log(lang.get('main.specialties'));
...
lang 对象没有错误并设法按预期输出 get。
现在我在以下目录中有一个 vue 组件,如上所示导入:
ressource/assets/js/components/toggle.vue
在脚本部分:
<script>
export default{
data(){
return {
text_holder: lang.get('main.specialties'),
}
},
...
}
但是这不起作用。它抱怨 lang 未定义。 我想我错过了 javascript 范围的差距(概念)。我认为如果所有内容都在 app.js 中并被导入,那么 var lang 将在全局范围内,我将被允许在导入过程中的任何地方使用它(类似于 vendor 来自 php) 我猜不是。
现在我该怎么办? 在每个 vue 组件上引入一个导入(但是我必须确保向后的路径是正确的,并且多次加载同一个对象/message.js 会使 javascript.
膨胀非常感谢 JS 的帮助。
创建您的 lang.js
,并导出 lang 实例
var lang = new Lang();
lang.setMessages(require('./messages.js'));
...
export default lang;
然后您可以在您的组件中导入并使用该实例
import lang from 'path/to/lang'
export default {
data () {
return {
text_holder: lang.get('main.specialties'),
...
}
}
}
另一种方法是写plugins,你可以将lang
注入到Vue中,这样你就可以在你的组件中访问lang
。