VUE 多语言切换

主要解决两个问题

1、刷新空白问题

2、Tab打开的页面多了以后,多语言切换只能切换看到的那个页面,其他页面不触发切换

解决思路:使用keep-alive 清掉路由缓存

实现代码:

路由相关



    



核心切换逻辑
"$store.state.setting.lang": {
      handler: function (newVal, oldVal) {
        this.NProgress.start();
        this.refreshing = true;
        //切换语言,刷新页面,需要刷新所有打开的页面
        for (var tab of this.$store.state.tab.tabs) {
          this.exclude += tab.componentName+",";
        }
        setTimeout(() => {
            this.refreshing = false;
            this.$nextTick(() => {
              this.exclude = "";
              this.NProgress.done();
            });
          }, 200);
      },
    },

你可能感兴趣的:(VUE,vue.js,javascript,ecmascript)