用纯react Hooks来编写一个todolist案例(一)

简介: 用纯react Hooks来编写一个todolist案例(一)

最近看到网上很多todolist的案例都是类组件的,发现这样对ReactHooks的初学者来说很不友好。遂编写此文章。(脚手架是官方原生的 create-react-app)

页面效果如下

image.png

先不考虑功能,如果当你看到这个图,脑子里还不能清晰的浮现出怎样敲出来这样的排版。我的建议是多写几个页面,千万不要眼高手低。我的建议是你先不要看下面的文章了,先打开你的代码编辑软件去把这个简单的页面排版实现,功能先不要考虑,等你可以自己完成这个页面,再回过头来看这篇文章。

可以去看我的博客,我的文章都是新手向hanzhenfang.vercel.app/(点击博客客人主页头像,就可以打开空调,由于采用了黑科技,手机端可以从听筒吹到风。电脑端暂时还没实现,日后更新...)

image.png

ok,我们已经完成了页面排版,接下来一步一步实现各个组件的小功能。你不需要一下子就把所有的效果实现,一点一点来就可以。

header:


image.png

body:


首先我们有三个默认值,肯定是array.map的方法把这个状态打印出来。

image.png

在这里我选择使用 useReducer,因为页面列表里有添加和删除的功能,当然你也可以用usestate,实现的效果都是一样的。

需要渲染出这个数组对象的值,不需要考虑 array.map这个方法最简单粗暴。

image.png

里为什么传index呢,因为后面我们需要用到。

footer:


image.png

ok我们首先需要实现的是点击添加按钮可以往数组里面添加值。

image.png

添加用户输入的值,我首先就得拿到input的value,这里采用最简单的uesRef来获取。

首先我们需要用,就得先定义

image.png

接着给input标签挂上这个

image.png

userInput.current.value就是我们需要得到的值.

接着我们需要实现添加功能

首先定义reduce

image.png

添加的逻辑就很简单了,这里你也可以写逻辑判断,来判断用户的数据是否为空然后再执行。 这里采用了ES6的拓展运算符语法,来展开原数组,当我点击的时候,在数组前面加上一个新的id和新的content。

接下来就是删除当前你选择的某个列表项,这个需要你对array.slice的用法比较熟悉。

image.png

slice()方法一般有两个参数,第一个表示从第几个索引开始切,第二个参数表示切到哪里停下,但不是不包括第二个参数。意思就是切到第二个参数之前!!!一定要明白这个点,非常重要!

第一个slice(0,action.index)表示的是,我切下从列表第一项到 index(但是不包括)项,然后返回这些数据特别强调:不是返回剩下的数据!!!!这个方法不改变原数组,而是返回一个新的数组。(注意:slice是切下的意思,不是切剩下的意思)

第二个数组 state.slice(action.index+1)当只有一个参数的时候,begin就是参数值,而这个方法会把第二个参数end的值为数组的长度!意思就是slice(1,array.length),意思就是我从第一个索引开始切(注意,开始切的时候这个参数对应的索引是包括在内的,不然你索引0这个值永远切不到!) 这样就实现了todolist的增添功能。

未完待续.....


相关文章
|
前端开发 JavaScript 开发者
深入理解React Hooks:提升前端开发效率的关键
【10月更文挑战第5天】深入理解React Hooks:提升前端开发效率的关键
|
4月前
|
前端开发
轻松掌握 React Hooks:简化状态与副作用管理
轻松掌握 React Hooks:简化状态与副作用管理
189 80
|
4月前
|
前端开发
React Hooks数据获取:避免内存泄漏的实战指南
React Hooks数据获取:避免内存泄漏的实战指南
|
28天前
|
缓存 前端开发 JavaScript
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
🌟蒋星熠Jaxonic,前端探索者。专注React Hooks深度实践,从原理到实战,分享状态管理、性能优化与自定义Hook精髓。助力开发者掌握函数组件的无限可能,共赴技术星辰大海!
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
|
前端开发 JavaScript
React Hooks 全面解析
【10月更文挑战第11天】React Hooks 是 React 16.8 引入的新特性,允许在函数组件中使用状态和其他 React 特性,简化了状态管理和生命周期管理。本文从基础概念入手,详细介绍了 `useState` 和 `useEffect` 的用法,探讨了常见问题和易错点,并提供了代码示例。通过学习本文,你将更好地理解和使用 Hooks,提升开发效率。
238 4
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
11月前
|
前端开发 JavaScript
深入探索React Hooks:从useState到useEffect
深入探索React Hooks:从useState到useEffect
|
12月前
|
前端开发 开发者
React 提供的其他重要 Hooks
【10月更文挑战第20天】React 提供了一系列强大的 Hooks,除了 `useRef` 之外,还有许多其他重要的 Hooks,它们共同构成了函数式组件开发的基础。
208 62
|
11月前
|
前端开发
React Hooks:从基础到进阶的深入理解
React Hooks:从基础到进阶的深入理解
232 2