博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react hooks学习
阅读量:4622 次
发布时间:2019-06-09

本文共 1943 字,大约阅读时间需要 6 分钟。

接触React项目快两个月了,还在研究摸索各种知识点的过程中,充实且幸福。

在项目中学习新知识,还是很有效率的,一边写项目,一边实验新的知识点,比如react hooks!嘻嘻嘻~~~

写了好一段时间class组件了,想尝试尝试函数式组件,之前也有试过,但是一碰到需要使用state的地方,只能又把function改成了class,心塞塞,然后没事刷博客,看到了react hooks,有一种缺什么,就有什么新知识冒出来的感觉。

1、State Hook,使用state

import { useState } from 'react';function Example() {  const [count, setCount] = useState(0);  //const [age, setAge] = useState(42);  //const [fruit, setFruit] = useState('banana');  //const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);  return (    

You clicked {count} times

);}

2、Effect Hook,使用生命周期,在第一次render和每次update后触发useEffect

 
import { useEffect } from 'react';
function FriendStatusWithCounter(props) {  const [count, setCount] = useState(0);  useEffect(() => {    document.title = `You clicked ${count} times`;  });  const [isOnline, setIsOnline] = useState(null);  useEffect(() => {    ChatAPI.subscribeToFriendStatus(props.friend.id, handleStatusChange);    return () => {      ChatAPI.unsubscribeFromFriendStatus(props.friend.id, handleStatusChange);    };  });  function handleStatusChange(status) {    setIsOnline(status.isOnline);  }  // ...

 如果只是像class组件那样,在事件函数中通过setState设置表格数据,表格不会及时更新,需要结合useEffect使用!

function App() {  const [data, setData] = useState({ hits: [] });  const [query, setQuery] = useState('redux');  const [search, setSearch] = useState('redux');  useEffect(() => {    const fetchData = async () => {      const result = await axios(        `http://hn.algolia.com/api/v1/search?query=${search}`,      );      setData(result.data);    };    fetchData();  }, [search]);  return (    
setQuery(event.target.value)} />
);}

 

转载于:https://www.cnblogs.com/zoeeying/p/11087469.html

你可能感兴趣的文章
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>
一文搞懂Java环境,轻松实现Hello World!
查看>>
hash实现锚点平滑滚动定位
查看>>
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
Python中Selenium的使用方法
查看>>
三月23日测试Fiddler
查看>>
20171013_数据库新环境后期操作
查看>>
poj 1654 && poj 1675
查看>>
运维派 企业面试题1 监控MySQL主从同步是否异常
查看>>