React Hooks学习--useReducer,useMemo和useRef

一.useReducer

function ReducerDemo(){
	const [count,dispatch] = useReducer((state,action) => {
		switch(action){
			case 'add':
				return state + 1
			case 'sub'
				return state - 1
			default:
				return state
		}
	},0)
	return (
	<>
		<h2>现在的分数是{count}</h2>
		<button onClick={() => {dispatch('add')}}>Increment</button>
		<button onClick={() => {dispatch('sub')}}>Decrement</button>
	)
}

二.useMemo

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);

可以将useMemo作为性能优化的方法,它仅会在某个依赖项改变时才重新计算 memoized 值,如果没有提供依赖项数组,useMemo 在每次渲染时都会计算新的值。

三.useRef

useRef可以用来获取当前ref所在的DOM节点

function Example(){
	const inputEle = useRef(null);
	const onButtonClick = () => {
		inputEle.current.value = "hahahaha"
	}
	return (
	<>
		<input ref={inputELe} type="text"/>
		<button onClick={onButtonClick}>在input中显示</button>
	</>
	)
}

与createRef相似,在xxx.current.value中获取值
useRef和ref相比,useRef可以很方便的保存任何可变值,也可以在如effect等很多地方使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值