diff --git a/packages/tab/src/tab.vue b/packages/tab/src/tab.vue index 97108461c..d0fa5627f 100644 --- a/packages/tab/src/tab.vue +++ b/packages/tab/src/tab.vue @@ -15,12 +15,21 @@ }, disabled: Boolean }, - beforeCreate() { - this.$parent.tabs.push(this); + data() { + const nextIndex = this.$parent.tabs.length; + this.$parent.tabs.push({ + title: this.title, + disabled: this.disabled, + index: nextIndex + }); + + return { + key: nextIndex + }; }, computed: { classNames() { - return { 'van-tab__pane--select': this.$parent.tabs.indexOf(this) === this.$parent.curActive }; + return { 'van-tab__pane--select': this.key === this.$parent.curActive }; } } }; diff --git a/test/unit/components/tabs.vue b/test/unit/components/tabs.vue index 49836d301..a97da9d63 100644 --- a/test/unit/components/tabs.vue +++ b/test/unit/components/tabs.vue @@ -1,5 +1,5 @@