react中什么是hook
- 它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。
- hook的主要作用是为了让组件内的逻辑更加清晰,并且可以通过自定义hook来达到复用逻辑。
- hook只能使用在函数组件中,class组件不支持,所有hook默认约定名称用use开头。
hook基本使用(useState,useEffect)
- useState作用
- 创建初始化值,代替constructor中的this.state;
- 使用是根据第一个参数,修改根据第二个参数
import React, { useEffect, useState } from 'react';
const HookDemo = (props) =>{
const [number, setNumber] = useState(1);
useEffect(()=>{
setNumber(3)
console.log('初始化打印,number发生改变');
},[])
return (
<div>{number}</div>
)
}
export default HookDemo;
- useEffcct使用
- 对应组件生命周期中的Mount阶段和Update阶段。
- useEffcct中的两个参数,
- 副作用函数,副作用函数还可以返回一个函数对象,这个函数对象用来清除副作用,不用清除副作用则不用返回。对应class生命周期中的卸载componentWillUnmount,更新componentWillUpdate。
- 数组(可选),里面传入副作用函数中使用到的数据变量,并且这个变量得具有一定变化的特性,第二个参数主要用于优化,防止进行重复渲染
import React, { useEffect, useState } from 'react';
const HookDemo = (props) =>{
const [number, setNumber] = useState(1);
useEffect(()=>{
// setNumber(3) 第一次执行,之后当number发生改变再次执行
console.log('初始化打印,number发生改变');
const time = setTimeout(()=>{
console.log('执行')
},2000)
return (
// 销毁
() =>{
clearTimeout(time)
}
)
},[number])
return (
<div>{number}</div>
)
}
export default HookDemo;
hook使用
- hook和生命周期函数一样,必须写在函数最顶层。
- 而且hook不应该被嵌套进条件或者循环语句中。
- hook只能在函数组件或者自定义hook中被使用,而不能用于普通函数或者class组件中
------------恢复内容开始------------
react中hook使用react中什么是hook
- 它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。
- hook的主要作用是为了让组件内的逻辑更加清晰,并且可以通过自定义hook来达到复用逻辑。
- hook只能使用在函数组件中,class组件不支持,所有hook默认约定名称用use开头。
hook基本使用(useState,useEffect)
- useState作用
- 创建初始化值,代替constructor中的this.state;
- 使用是根据第一个参数,修改根据第二个参数
import React, { useEffect, useState } from 'react';
const HookDemo = (props) =>{
const [number, setNumber] = useState(1);
useEffect(()=>{
setNumber(3)
console.log('初始化打印,number发生改变');
},[])
return (
<div>{number}</div>
)
}
export default HookDemo;
- useEffcct使用
- 对应组件生命周期中的Mount阶段和Update阶段。
- useEffcct中的两个参数,
- 副作用函数,副作用函数还可以返回一个函数对象,这个函数对象用来清除副作用,不用清除副作用则不用返回。对应class生命周期中的卸载componentWillUnmount,更新componentWillUpdate。
- 数组(可选),里面传入副作用函数中使用到的数据变量,并且这个变量得具有一定变化的特性,第二个参数主要用于优化,防止进行重复渲染
import React, { useEffect, useState } from 'react';
const HookDemo = (props) =>{
const [number, setNumber] = useState(1);
useEffect(()=>{
// setNumber(3) 第一次执行,之后当number发生改变再次执行
console.log('初始化打印,number发生改变');
const time = setTimeout(()=>{
console.log('执行')
},2000)
return (
// 销毁
() =>{
clearTimeout(time)
}
)
},[number])
return (
<div>{number}</div>
)
}
export default HookDemo;
hook使用
- hook和生命周期函数一样,必须写在函数最顶层。
- 而且hook不应该被嵌套进条件或者循环语句中。
- hook只能在函数组件或者自定义hook中被使用,而不能用于普通函数或者class组件中
------------恢复内容结束------------