react实现watch
import React, { useRef, useEffect } from 'react';
function useWatch(value, callback, config={immediate: false}){
const oldValue = useRef()
const isInit = useRef(false)
const isWatch = useRef(true)
useEffect(() => {
if(isWatch.current){
if(!isInit.current){
isInit.current = true
if(config.immediate){
callback(value, oldValue.current)
}
}else{
callback(value, oldValue.current)
}
oldValue.current = value
}
},[value])
const unWatch = () => {
isWatch.current = false
}
return unWatch
}