当前位置: 首页 > news >正文

Vue中TodoList案例_编辑

nextTick: 

MyItem.vue

加一个编辑按钮,input框:@blur失去焦点时触发事件handleBlur,ref获取真实dom:

     <inputtype="text"v-show="todo.isEdit":value="todo.title"@blur="handleBlur(todo,$event)"ref="inputTitle"><button class="btn btn-edit" @click="handleEdit(todo)" v-show="!todo.isEdit">编辑</button>

methods加俩方法:

 //编辑handleEdit(todo){if (todo.hasOwnProperty.call('isEdit')){todo.isEdit = true}else {console.log('a@@')this.$set(todo,'isEdit',true)}// setTimeout(()=>{//   this.$refs.inputTitle.focus()// },20)this.$nextTick(function (){this.$refs.inputTitle.focus()})},//失去焦点回调(真正执行修改逻辑)handleBlur(todo,e){todo.isEdit=falseif (!e.target.value.trim())return alert('输入不能为空')this.$bus.$emit('updateTodo',todo.id,e.target.value)}

App.vue:

methods:中加一个方法

 //更新一个todoupdateTodo(id,title){this.todos.forEach((todo)=>{if (todo.id===id)todo.title=title})},

mounted钩子中添加

    this.$bus.$on('updateTodo',this.updateTodo)

beforeDestroy钩子中添加

    this.$bus.$off('updateTodo')

style中加编辑按钮样式:

.btn-edit {color: #fff;background-color: skyblue;border: 1px solid #0f7daa;margin-right: 3px;
}

 

http://www.lryc.cn/news/95468.html

相关文章:

  • 什么是Redis?
  • 深入浅出理解vue2/vue3响应式原理
  • ssh连接服务器配置
  • el-table 表头设置渐变色
  • GB/T 25000.51解读——软件产品的易用性怎么测?
  • 408复试day2(7大排序算法)
  • Vue消息订阅与发布
  • MySQL学习笔记 ------ 分组查询
  • Matlab 点云平面特征提取
  • vite的介绍
  • 裁员 10%,暴跌 14%,这家 IT 独角兽正在被抛弃!
  • 电脑记事本在哪里?电脑桌面显示记事本要怎么设置?
  • 微服务笔记---Nacos集群搭建
  • python 小案例
  • 【SpringBoot】SpringBoot JPA 基础操作(CURD)
  • 大数据技术之Hive3
  • Spring Boot实践二
  • python:基于GeoPandas和GeoViews库将GEDI激光高程数据映射到交互式地图
  • 汇编实现strcpy
  • Appium+python自动化(二十四) - 元素等待(超详解)
  • NFT市场泡沫破裂了吗?投资NFT是否仍然安全?
  • k8s使用helm部署Harbor镜像仓库并启用SSL
  • B/B+树算法
  • vue3.2 + elementPlus + Windi CSS + ts创建一个好用的可兼容不同宽高的login页面
  • Integer包装类详解加部分源码
  • 如何给侧边栏添加 Badge 计数标记
  • 插槽slot复习
  • 【C++STL标准库】序列容器之deuqe与、orwa_list与list
  • RocketMQ教程-(5)-功能特性-消息发送重试和流控机制
  • OpenCV笔记