关于Vue,如何能将一个对象赋值到页面所有的Vue实例里

184次阅读

translate = {
    'a':'a',
    'b':'b'
}

假设我这个translate要赋值到我页面的header实例里,和页面中其他实例里,要怎么办?因为这个translate是通用的,用php拼接到某个页面里的,所以实例数量和名字是未知的,不能直接

header.translate = translate

因为其他页面的实例需要显示translate里的字,因为我是通过ajax来获得其他语言的。想是直接更新translate对象页面的字就能改变。但是一个页面不只有一个Vue实例,所以不能直接指定单独一个。

类似于:

A.html
B.html
header.html

用php拼接,共用一个header.html

页面A.html有一个Vue实例A,
页面B.html有一个Vue实例B,
页面header有一个Vue实例header,

在打开A的时候就有两个实例,但里面的文字都在外边js文件里的translate对象里面,这个js是写死的,所以不能直接像上面一样赋值。


情况大概是这样,大家有没有什么好点的思路或则其他的解决方法。

Q稀里哗啦Q

vuex或者mixins

Chobits

建议了解一下 vuex,可以使用 vuex 实现多组件共享状态,其中的状态可以在 action 中通过 AJAX 进行初始化,然后在 app.vue 的 created 中调用该 action,需要获取其它语言时通过 AJAX 获取。

KingMario

正文完