diff --git a/package.json b/package.json
index 9942fbac..182bb778 100644
--- a/package.json
+++ b/package.json
@@ -91,7 +91,7 @@
     "husky": "1.3.1",
     "lint-staged": "8.1.5",
     "mockjs": "1.0.1-beta3",
-    "node-sass": "^4.9.0",
+    "node-sass": "^4.12.0",
     "plop": "2.3.0",
     "runjs": "^4.3.2",
     "sass-loader": "^7.1.0",
diff --git a/src/permission.js b/src/permission.js
index 750aeab6..5b0a6ed4 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -11,6 +11,12 @@ NProgress.configure({ showSpinner: false }) // NProgress Configuration
 const whiteList = ['/login', '/auth-redirect'] // no redirect whitelist
 
 router.beforeEach(async(to, from, next) => {
+  // skip some code, make tab work with router smoother
+  if (to.path === from.path) {
+    next()
+    return
+  }
+
   // start progress bar
   NProgress.start()
 
diff --git a/src/views/tab/index.vue b/src/views/tab/index.vue
index 6438a47a..f07a99f9 100644
--- a/src/views/tab/index.vue
+++ b/src/views/tab/index.vue
@@ -26,20 +26,18 @@ export default {
         { label: 'Japan', key: 'JP' },
         { label: 'Eurozone', key: 'EU' }
       ],
-      activeName: 'CN',
       createdTimes: 0
     }
   },
-  watch: {
-    activeName(val) {
-      this.$router.push(`${this.$route.path}?tab=${val}`)
-    }
-  },
-  created() {
-    // init the default  selected tab
-    const tab = this.$route.query.tab
-    if (tab) {
-      this.activeName = tab
+  computed: {
+    activeName: {
+      get() {
+        return this.$route.query.tab || 'CN'
+      },
+      set(tab) {
+        // this.$router.push({ query: { tab }})
+        this.$router.replace({ query: { tab }})
+      }
     }
   },
   methods: {