设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

【React深入】从Mixin到HOC再到Hook(12)

发布时间:2019-04-11 17:31 所属栏目:21 来源:ConardLi
导读:通过useState,我们使用函数式组件也能实现这样的功能: exportdefaultfunctionHookTest(){ const[count,setCount]=useState(0); return( div pYouclicked{count}times/p buttononClick={()={setCount(count+1);set

通过useState,我们使用函数式组件也能实现这样的功能:

  1. export default function HookTest() {  
  2.   const [count, setCount] = useState(0);  
  3.   return (  
  4.     <div>  
  5.       <p>You clicked {count} times</p>  
  6.       <button onClick={() => { setCount(count + 1); setNumber(number + 1); }}>  
  7.         Click me  
  8.         </button>  
  9.     </div>  
  10.   );  

useState是一个钩子,他可以为函数式组件增加一些状态,并且提供改变这些状态的函数,同时它接收一个参数,这个参数作为状态的默认值。

Effect Hook

Effect Hook 可以让你在函数组件中执行一些具有 side effect(副作用)的操作

参数

useEffect方法接收传入两个参数:

  •  1.回调函数:在第组件一次render和之后的每次update后运行,React保证在DOM已经更新完成之后才会运行回调。
  •  2.状态依赖(数组):当配置了状态依赖项后,只有检测到配置的状态变化时,才会调用回调函数。 
  1. useEffect(() => {  
  2.    // 只要组件render后就会执行  
  3.  });  
  4.  useEffect(() => {  
  5.    // 只有count改变时才会执行  
  6.  },[count]); 

回调返回值

useEffect的第一个参数可以返回一个函数,当页面渲染了下一次更新的结果后,执行下一次useEffect之前,会调用这个函数。这个函数常常用来对上一次调用useEffect进行清理。

  1. export default function HookTest() {  
  2.   const [count, setCount] = useState(0);  
  3.   useEffect(() => {  
  4.     console.log('执行...', count);  
  5.     return () => {  
  6.       console.log('清理...', count);  
  7.     }  
  8.   }, [count]);  
  9.   return (  
  10.     <div>  
  11.       <p>You clicked {count} times</p>  
  12.       <button onClick={() => { setCount(count + 1); setNumber(number + 1); }}>  
  13.         Click me  
  14.         </button>  
  15.     </div>  
  16.   );  

执行上面的代码,并点击几次按钮,会得到下面的结果:

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读