我目前正在尝试在vue js中实现本地化。以下是main.js
中的代码。
var lang = localStorage.getItem('locale') ? localStorage.getItem('locale') : '';
if (lang === '') {
lang = 'en';
localStorage.setItem('locale', lang);
}
App.vue
页面上会有两个标记图像。每当我点击标志时,都会触发一个函数changeLocale()
。这是用App.vue
methods : {
changeLocale : function(ln){
console.log(ln);
}
},
现在,从App.vue
我需要更改lan
main.js
的值
有人可以帮我这样做吗?提前谢谢。
答案 0 :(得分:1)
这取决于你在main.js中的内容。 如果你没有那里的vue实例,一个想法是使用事件总线。
在第三个文件中,' bus.js':
const bus = new Vue();
module.exports = bus;
在App.vue中:
const bus = require('./bus.js');
// in methods:
changeLocale : function(ln) {
bus.$emit('localeChanged', ln);
}
在main.js中:
const bus = require('./bus.js');
bus.$on('localeChanged', (locale) => {
console.log('locale has changed, and its ' + locale);
});
请参阅:https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication