在使用i18n.js的时候,由于项目需求,其定义的值需要在vue.js(2)的v-for语法中使用,把它定义倒了初始化的data中。

在切换中英文的时候,发现data使用的i18n内的值并没有即时生效,而模板渲染的地方却正常。

排查是不是在这里使用的时候this.$i18n.locale并没有定义成功,一切正常;
接着查看会不会是浏览器或者项目的缓存,一切也是正常的;
又在mounted里面进行输出,也是正常输出的。

后来采用computed进行定义值之后正常了。

发现原因在于:$i18n定义的元素值不能在data里面进行使用,computed 就像高级语言中的属性,有getter/setter方法,而data 就像变量,在获取$18n定义元素的时候并不会完美运行

Logo

前往低代码交流专区

更多推荐