Hooks useState useEffect

 

 

 

import React, { useState,useEffect } from 'react'
function Hook() {
    数组第一项相当于state中的数据
    数组第二项是改变当前数组第一项的setstate的方法 setName('老朱')直接传入修改的数据
    useState() 里面可以传任意的初始化的值
    let [name,setName] = useState('小朱')
    let [age, setAge] = useState(()=>{
        return 22 //惰性求值。在修改的时候,这个函数不会再修改了
    })
    return (
    <div>
      <span>{name}</span>
      <button
        onClick={() => {
          setName('老朱')
          setAge(22)
        }}
      ></button>
    </div>
    )
}

 

useEffect给函数组件增加了执行副作用操作的能力。

数据获取,设置订阅以及手动更改React组件中的DOM都属于副作用

 

import React, { useState, useEffect } from 'react'
function A() {
  let [name, setName] = useState(() => {
    return '老朱'
  })
  useEffect(() => {
     console.log('hook执行了')
     setName('老朱')
     //避免内存泄漏
     return ()=>{
         //这里相当于页面卸载阶段
        //在这里清除所有的副作用,销毁后这里面的问题,比如说上面加的定时器,组件销毁后还在执行
     }
  }, [name]) //这里的[]可以放置监听项,只要有变化,都会执行一次,第一次初始化的时候也会执行
  []传空数组则不会重复执行 状态依赖 
  return <div>{name}</div>
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值