day85-todoList消息订阅与发布改进
item
handleCheck(id) { // 通知App组件将对应todo的done取反 // pubsub.publish('checkTodo', id) // this.checkTodo(id) this.$bus.$emit('checkTodo',id) }, handleDelete(id) { if(confirm('确定删除吗?')){ // 通知App组件删除对应的todo pubsub.publish('deleteTodo', id) // this.$bus.$emit('deleteTodo',id) } }, handleEdit(todo) { // 判断todo身上是否有isedit if(todo.hasOwnProperty.call('isEdit')) { todo.isEdit = true }else { this.$set(todo, 'isEdit', true) } this.$nextTick(() => { this.$refs.inputTitle.focus() }) }, handleBlur(todo, e) { let id = todo.id let title = e.target.value todo.isEdit = false if(!e.target.value.trim()) return alert('输入不能为空') pubsub.publish('updateTodo', {id, title} ) } }, }
mounted() { // this.pubId_check = pubsub.subscribe('checkTodo', this.checkTodo) this.pubId_delete = pubsub.subscribe('deleteTodo', this.deleteTodo) // this.pubId_update = pubsub.subscribe('updateTodo', this.updateTodo) this.$bus.$on('checkTodo',this.checkTodo) // this.$bus.$on('deleteTodo',this.deleteTodo) }, beforeDestroy() { // pubsub.unsubsribe(this.pubId_check) pubsub.unsubsribe(this.pubId_delete) // pubsub.unsubsribe(this.pubId_update) this.$bus.$off('checkTodo') // this.$bus.$off('deleteTodo') },

浙公网安备 33010602011771号