TodoList添加编辑功能$nextTick

Vue06 全局事件总线 TodoList-事件总线 消息订阅与发布 TodoList-pubsub TodoList-编辑$nextTick 动画效果 github案例 全局事件总线 TodoList-事件总线 消息订阅与发布 TodoList-pubsub TodoList-编辑$nextTick 动画效果 过度效果 配置代理_方式一二 github案例 阅读详情

效果图

todolist编辑

部分代码

myItem.vue
这里用到了hasOwnProperty()方法,可以检验数组中是否包含该属性
注意在这里必须要是用$set()方法才可以,不然不会生成getter和setter

在点击编辑时时这里使用了 $nextTick 才可以获取焦点哦
$nextTick
1.语法:this. $extTick(回调函数)
2.作用:在下一次DOM更新结束后执行其指定的回调
3.什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行。

<template>
	<div class="itemContent">
		<div class="inputList">
			<input type="checkbox" :checked="todo.done" @change="handleCheck(todo.id)" />
			<div v-show="!todo.isEdit"> {{todo.title}}</div>
			<input v-show="todo.isEdit" :value="todo.title"  @blur="blurEdit(todo,$event)" type="text" ref="inputEdit">
		</div>
		<div class="btnList">
			<div v-show="!todo.isEdit" class="delBtn edit" @click="handleEdit(todo)">编辑</div>
			<div class="delBtn" @click="handleClear(todo.id)" >删除</div>
		</div>
	</div>
</template>
<script>
	import pubsub from 'pubsub-js'
	export default {
		name: 'MyItem',
		// 声明接收todo对象
		props: ['todo'],
		methods: {
			// 勾选
			handleCheck(id) {
				this.$bus.$emit('checkTodo', id)
			},
			//删除
			handleClear(id) {
				if (confirm('确认要删除吗?')) {
					pubsub.publish('clearTodo', id)
				}
			},
			// 编辑
			handleEdit(todo){
				if(todo.hasOwnProperty('isEdit')){
					todo.isEdit = true
				}else{
					this.$set(todo,'isEdit',true)
				}
				this.$nextTick(function(){
					this.$refs.inputEdit.focus()
				})
			},
			// 失去焦点回调(真正执行修改逻辑)
			blurEdit(todo,e){
				this.$bus.$emit('updateTodo',todo.id,e.target.value)
				todo.isEdit = false
			}
		},
		beforeDestroy() {

		}
	}
</script>

app.vue

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

一点小知识!!!

day04 - Vue2.x版todoList案例讲解 本文介绍了使用Vue.js实现一个完整的TodoList应用的开发过程。主要内容包括:1)数据渲染与初始化;2)任务添加功能实现,通过v-model绑定输入框和按键事件处理;3)任务删除功能,使用splice方法操作数组;4)任务编辑功能,通过isEdit状态控制显示,配合nextTick解决DOM操作时机问题;5)任务状态切换功能,利用v-show和计算属性统计数量;6)本地存储功能实现,通过watch深度监听数据变化自动保存;7)最终整合成一个完整的TodoList应用,包含添加、删除、编辑、状态切换和 阅读详情

相关推荐

Todolist:简单的应用程序,可添加,编辑和删除待办事项

作业前-Todolist Todolist是一个Android应用程序,它允许构建待办事项列表和基本的待办事项管理功能,包括添加新项目,编辑和删除现有项目。 提交人:Aravindh Balakrishnan 花费时间:总共花费3个小时 用户故事 完成以下必需的功能: 用户可以成功地从待办事项列表中添加和删​​除项目 用户可以点击列表中的待办事项,并打开待办事项的编辑屏幕,然后对待办事项列表中显示的文本进行任何更改。 用户可以保留待办事项,并在应用重启时正确检索它们 将实现以下可选功能: 将待办事项保留而不是文本文件中 改善列表中待办事项的样式 添加对待办事项的完成截止日期的支持(并显示在listview项中) 使用而不是新的Activity来编辑项目 添加对选择每个待办事项优先级的支持(并显示在列表视图项中) 调整样式以改善UI / UX,玩颜色,图像或背景 视频

Vue学习:todolist 编辑

存在问题:当你点击 但是没有进行焦点 之间失去焦点就会存在问题。当失去焦点变成正常文字——真正指向回调。使用追加属性,要对应的get set。item里面设置:对于是否显示编辑。还要一个编辑全部删除了也有问题。在挂载钩子注册和销毁中解绑。更新去APP.vue中。接收输入框传入的参数。

weixin_47295886的博客 326

【FPGA】Verilog代码实现温湿度传感器DHT11

#今天也是咸鱼的一天~ 因为参加Robei 杯 是要做一个机器人,先不说这个机器人具体怎么机器法,但是和外界互通的传感器肯定少不了,通过获取外界环境数据,进行处理,然后做出各种各样的功能。 先来讲个简单的模块,温湿度传感器DHT11。 DHT11介绍 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器。它具有超小体积、极低功耗的特点。它使用单根总线与单片机进行双向的串行数据传输,信号传...

Ninquelote的博客 9162

TodoList案例_编辑功能

一、需求 当鼠标悬浮时,在删除旁边,加一个编辑按钮,一点编辑,文字变为输入框,然后出现保存和取消两个按钮 如下图: 二、完成需求 1、增加按钮 MyItem.vue 效果: 2、完成编辑 在每一个todo的身上,追加一个属性,isEdit 如果isEdit为真,则是一个input框 如果isEdit为假,则正常展示一个文字,如下图 MyItem.vue 注意: 如果直接:todo.isEdit=true 发现点击编辑之后没效果, 原因是因为当前只是往toso身上添加了一个属性,没有对应的get

Pig-pig-pig的博客 411

Windows本地部署Qwen3-14B实战指南:Ollama+Open WebUI零Docker方案

大语言模型本地部署是AI工程化落地的关键环节,其核心在于推理框架兼容性、硬件加速适配性与端到端稳定性。Ollama作为轻量级模型运行时,原生支持Windows DirectML与CUDA,规避了Docker/WSL2虚拟化开销和llama.cpp编译风险;Qwen3-14B则凭借128K上下文、Tool Calling原生支持及中文长文本结构化能力,成为政务、金融等场景首选。本文聚焦Windows平台真实约束——显存阈值、驱动版本匹配、路径编码兼容、离线知识库集成(RAG)等工程细节,提供经63台Windo

weixin_32136203的博客 413

数据结构实验1.2—高精度计算PI值(西工大)

这是数据结构第二题的题目,是让我们根据用户的需求来计算派的值 这是题目的详细描述,刚看到这道题的时候,我是真的头大,完全没有思路,于是查找了一些大佬的笔记后才开始编写 这是我在写这些代码是所运用到的数学反三角函数幂次展开式的知识。 下面是正确的代码以及我的一些见解,和需要注意的一些地方。希望能对你有所帮助。如有更加精简的算法,请在评论区留下你的算法!!!谢谢!!! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl

abcdef0623的博客 5831

Vue学习:todolist 编辑功能完善 $nextTick

this.$nextTick(回调函数)==》 在下一次DOM更新结束后执行指定的回调 使用时间:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行

weixin_47295886的博客 205

Lammps实现结冰匀相成核

Lammps实现结冰匀相成核

Rockyoung 3848

vue TodoList 用$nextTick实现焦点获取

要点: 官方推荐 这样写也可以 方法一、 加一个ref实现可以获取实例对象再使用focus实现获取焦点 但是发现没有效果 原因 vue当isEdit数据改变时没有直接去重新解析模板.而是handleEdit里面代码全部执行完了才去执行模板,而我们上面使用了v-show,也就是说一开始是false的,但是46行代码改变了isEdit为true但是没有直接去重新解析模板,也就是此时v-show还是false的,相当于display为none.那么51行要对该dom...

MCCLS的博客 554

【25届数字IC秋招总结】面试经验15——比特大陆-算能

25届数字ic面试记录——比特大陆-算能

lalala0635的博客 555

群辉NAS映射为本地盘符

鼠标右击网络→映射网络驱动器→以上适合通过局域网操作,采用ZeroTier组网后,也可以按照以上步骤实现,这时使用 “虚拟局域网”的IP地址。

dgnankai的专栏 5776

2023/1/13 Vue学习笔记 - 为todoList案例新增编辑功能并且引出$nextTick的解决方案

2)public文件夹就相当于8080服务器的根路径。public文件夹里有的东西都算是8080中有的。1)Vue CLI官网——配置参考——devServer.proxy:配置参考 |1.优点:可以配置多个代理,且可以灵活的控制请求是否走代理。因为Vue需要等整个函数走完,才去重新渲染DOM。但是,以上方式不够灵活,且不能够配置多个代理。2.缺点:配置略微繁琐,请求资源时必须加前缀。解决跨域问题: 配置代理服务器。

一个搬砖工人 200

nvidia系列教程-AGX-Orin系统刷机及备份

NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。

flypig has a dream! 3328

TodoList案例_编辑与nextTick

它什么是这样的设计,就是怕我们下面也是这种判断,好家伙改一次重新渲染一次,太繁复了,还不如等你回调里面的代码都执行完了之后,在统计你一共改了多少的代码,然后一起上去重新解析。添加一个全局事件总线和失去焦点,让input框消失,同时优化了handleEdit()中,如果第一次点击,然它添加属性,之后的点击全是改它的isEdit属性为true。这个运用的很精妙,页面刚加载的时候是没有这个属性,那肯定是false,不显示的,当我们点击时,就给他设置了属性,并且为true,那么它就显示出来了。

薛定谔的猫 273

FAST-LIVO2 源码精读(一):系统总览——从 LIO 到 LIVO 的多传感器融合架构

本文是「FAST-LIVO2 激光-惯性-视觉里程计源码精读」专栏的开篇。全专栏共 18 篇,锚定香港大学 MaRS 实验室 2025 年 1 月开源的官方代码,逐模块剖析这套登上 T-RO’24 的多传感器融合系统。开篇先建立全局认知:FAST-LIVO2 所要解决的问题、整体框架的构成,以及源码主线的数据流动。

PX4-SLAM-PNC 594

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

todoList案例

1、实现,所有的复选框选中时,全选前的复选框也变成选中 <!-- v-model默认收集的就是value值。 --> <input type="checkbox" v-model="isAll"/> computed: { isAll:{ get(){ return this.doneTotal === this.total && this.total > 0

qq_44743216的博客 519

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Vue nextTick

1.语法:this.$nextTick(回调函数)2.作用:在下一次DOM更新结束后执行其指定的回调。3.什么时候用:当改变数据后要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行。})

2301_78939167的博客 256

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Vue (9)

本文主要内容 : 消息队列与发布 , $nextTick , 过度与动画

mu_tong_的博客 842

Vue2(十一):全局事件总线、消息订阅与发布pubsub、TodoList的编辑功能、$nextTick、过渡与动画

/挂载完成后给全局事件总线添加事件},//最好在销毁前解绑},

m0_73560798的博客 1921

Vue2-全局事件总线、消息的订阅与发布、TodoList的编辑功能、$nextTick、动画与过渡

Vue2-全局事件总线、消息的订阅与发布、TodoList的编辑功能、$nextTick、动画与过渡

weixin_56498069的博客 1208

Vue2(十):全局事件总线、消息订阅与发布、TodoList的编辑功能、$nextTick、动画

因为接收数据的组件A中定义的回调函数和自定义事件是绑定的,而这个用来接收数据的组件实例A都销毁了,回调函数也没了,那这个xxxx自定义事件也就没用了,你留着会污染全局环境(这块儿有点迷糊)这玩意儿用的不多,和全局事件总线写法差不多,但是全局事件总线更好,因为是在Vue身上操作,但是这个的话要引入第三方库,库有很多,比如pubsub-js。,那每次点击编辑按钮,都会添加一次isEdit属性,这样是不太好的,所以要加个判断,添加过了就改成true,没添加过就添加个true。,而且原来的span要隐藏。

Kiwi23333的博客 829

Vue基础15之消息订阅与发布、TodoList消息订阅与发布、TodoList编辑功能

School.vue Student.vue (4)提供数据:pubsub.publish(‘xxx’,数据) (5)最好在beforeDestroy钩子中,用pubsub.unsubscribe(pid)去App.vue MyItem.vue App.vue MyItem.vue MyList.vue 使用this.$set(对象名,“属性值”,设置值) 来增加对象的属性,使得Vue能够检测到数据变化,有get和set方法 MyItem.vue nextTick指定的回调函数会在dom

qq_34306228的博客 446

【Vue】消息订阅与发布_pubsub & TodoList 编辑事件

任意组件间通信</span>。使用步骤:引入:接收数据:A组件想接收数据,则在A组件中订阅消息,订阅的<span style="color:red">回调留在A组件自身。

2301_80636070的博客 1197

$nextTick()+过渡与动画+TodoList案例_动画效果

我们已经做了todoList的编辑功能,本篇文章将对上一篇文章遗留的问题进行解决 同时,本文将对 过渡与动画和配置代理功能做比较详细的讲述 MyItem.vue 解决: (1) 实现效果 进入 MyItem.vue不变: MyList.vue:......

Pig-pig-pig的博客 304

[089-090]_TodoList案例(编辑)&($nextTick)

完整代码main.jsApp.vue组件MyHeader.vueMyList.vueMyItem.vueMyFooter.vuenextTick main.js //引入Vue import Vue from 'vue' //引入App import App from './App.vue' //关闭Vue的生产提示 Vue.config.productionTip = false //创建vm new Vue({ el: '#app', render: h => h(App), bef

述安的博客 195
上一篇: Vue脚手架组件通信传参
咖啡不管用
博客等级 码龄6年 18粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值