React 实现对应 Vue 的 watch 侦听器监听字段变化的操作


实现案例:

            function Demo(){
                const [count, setCount] = useState(0);

                //使用 useEffect 实现类似 Vue watch 的效果
                useEffect(()=>{
                    console.log('count 的值变了',count);
                },[count]);

                //点击按钮触发 count 变化就能看到效果了
                return (
                    <button onClick={()=>setCount(count+1)}>
                        点击{count}
                    </button>
                )
            }
        
说明:

使用 React 的 Hook: useEffect来实现,第二个参数就是要监听的字段,格式为数组,可以同时监听多个字段。例如:[count,filed1,filed2]

但要注意,React 的 useEffect 会在组件首次加载时执行一次, 相当于 Vue 使用watch 时的属性设置 immediate:true 查看 watch 的 immediate 属性详情

参考资料 Reference :
React Hook useEffect

back home