亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

標簽切換不生效

為何tabs.vue內的@click事件都生效呢?

<span

????????v-for="state in states"

????????:key="state"

????????? :class="[state, filter === state ? 'actived' : '']"

????????@click="toggleFilter(state)"

>

????????{{state}}

</span>


正在回答

1 回答

tabs中的篩選狀態取決于todo里面傳過來的filter.你要通過事件總線($emit)將當前的點擊的狀態發送給父組件todo.vue,再在todo里面通過實踐監聽來將傳過來的state定義為傳過去的filter,以改變篩選標簽.

tabs.vue:

methods: {

????clearAllCompleted() {

????????this.$emit('clearAll');

????},

????toggleFilter(state) {

????????this.$emit('toggle', state);

????}

}

todo.vue:

HTML部分:

<Tabs

? ? ?:filter="filter"

? ? ?:todos="todos"

? ? ?@toggle="toggleFilter"

? ? ?@clearAll="clearAllCompletedTodo"

? ?/>

script部分:

methods: {

????addTodo(e) {

????????this.todos.unshift({

????????????id: id++,

????????????content: e.target.value.trim(),

????????????completed: false

?????????});

????????e.target.value = '';

?????},

????deleteTodo(id) {

????????this.todos.splice(this.todos.findIndex(todo => id === todo.id), 1);

????},

????toggleFilter(state) {

????????this.filter = state;

????},

????clearAllCompletedTodo() {

????????this.todos = this.todos.filter(todo=> todo.completed===false);

????}

}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

標簽切換不生效

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號