当前位置: 首页 > news >正文

南宁seo外包服务seo 网站制作

南宁seo外包服务,seo 网站制作,开办网站原因,百度竞价代运营公司文档 useState useState如果是以函数作为参数,那要求是一个纯函数,不接受任何参数,同时需要一个任意类型的返回值作为初始值。 useState可以传入任何类型的参数作为初始值,当以一个函数作为参数进行传入的时候需要注意&#xff…

文档

useState

  • useState如果是以函数作为参数,那要求是一个纯函数,不接受任何参数,同时需要一个任意类型的返回值作为初始值。

  • useState可以传入任何类型的参数作为初始值,当以一个函数作为参数进行传入的时候需要注意:
    如果只传入了函数名,那么这个函数参数只会在初始化渲染的时候被调用,后续页面发生变化也不会触发函数;如果传入的是函数调用后的结果,那么当初始化渲染和后续页面变化的时候都会触发函数。

    import { useState } from 'react';export default function Counter() {const [age, setAge] = useState(increment); // 因为传入的是函数名,所以只有在初始化的时候才触发,因此只有一个输出const [age, setAge] = useState(increment()); // 传入的是函数返回的内容,所以当点击+1的按钮进行更新的时候也会触发increment函数,所以一直会有输出function increment() {console.log('-----输出')return 0}function add(){setAge(a => a + 1);}return (<><h1>Your age: {age}</h1><button onClick={() => {add();}}>+1</button></>);
    }
    

    箭头函数同理:

    import { useState } from "react";export default function Counter() {const [age, setAge] = useState(() => {console.log("-----输出");return 0;});const [age, setAge] = useState((() => {console.log("-----输出");return 0;})());function add() {setAge((a) => a + 1);}return (<><h1>Your age: {age}</h1><buttononClick={() => {add();}}>+1</button></>);
    }
    

    请添加图片描述

  • setState是变更state的方法,它接受任何类型的值,包括函数。需要注意的是,set函数不会更新已经运行代码中的state状态变量,因此 ,当一个运行中的代码存在同时多次触发同一个set函数的时候,set中的state值其实都是之前没变化时的同一个。如果需要解决这个问题,可以向set函数传递一个更新函数,它必须是纯函数,只接受待定的 state 作为其唯一参数,并应返回下一个状态。此时,更新函数将会获取待定状态并从中计算下一个状态。

    //假设 age 为 42,这个处理函数三次调用 setAge(age + 1):
    function add() {setAge(age + 1); // setAge(42 + 1),因为add函数已经运行了,set函数不会更新里面的age值,所以取得全是上一次的值,即42,因此,每个 setAge(age + 1) 调用变成了 setAge(43)setAge(age + 1); // setAge(42 + 1)setAge(age + 1); // setAge(42 + 1)
    }
    

    解决这个问题,你可以向 setAge 传递一个更新函数,而不是下一个状态:

    function handleClick() {setAge(a => a + 1); // setAge(42 => 43)setAge(a => a + 1); // setAge(43 => 44)setAge(a => a + 1); // setAge(44 => 45)
    }
    

    这里,a => a + 1 是更新函数。它获取待定状态并从中计算下一个状态。

    React 将更新函数放入队列中。然后,在下一次渲染期间,它将按照相同的顺序调用它们:

    a => a + 1 将接收 42 作为待定状态,并返回 43 作为下一个状态。
    a => a + 1 将接收 43 作为待定状态,并返回 44 作为下一个状态。
    a => a + 1 将接收 44 作为待定状态,并返回 45 作为下一个状态。
    现在没有其他排队的更新,因此 React 最终将存储 45 作为当前状态。

    按照惯例,通常将待定状态参数命名为状态变量名称的第一个字母,如 age 为 a。然而,你也可以把它命名为 prevAge 或者其他你觉得更清楚的名称。

其他参考:
React Hooks中常用Hooks的用法详解
React Hooks中常用Hooks钩子的用法详解

http://www.yayakq.cn/news/255201/

相关文章:

  • 官网网站建设需求文档大型网站开发框架
  • 做网站预付款是多少栾城区城乡建设局网站
  • 手机网站如何制作宁波快速建站模板
  • 怎么弄免费的php空间做网站彩票网站怎么做ip管理
  • 建设网站需要多少钱济南兴田德润o地址不想用原来的网站模板了就用小偷工具采集了一个可是怎么替换
  • 网站检索功能怎么做呢石家庄网络推广询问设想科技
  • 做阿里巴巴的网站的费用吗用易语言做抢购网站软件
  • c 网站开发数据库工作不顺心压抑想辞职
  • 保定公司做网站怎么和客户推广说网站建设语
  • 健身网站的建设方案建设网站需要哪些备案
  • 野花视频直播免费观看7绍兴网站优化
  • 网页微博登录优化设计五年级上册语文答案
  • 烟台h5网站制作好看个人网页模板
  • 中山免费企业网站建设深圳营销网站建设模板
  • 万州网站推广国人在线做网站怎么样
  • 优化方案丛书官网企业网站seo外包
  • 建网站wordpress网络广告的类型
  • 站长之家综合查询工具商务网站建设理论依据
  • 做荣誉证书的网站企业网站设计规范
  • 沈阳网站建设seo优化苏州注册公司网上核名
  • 杭州网站建设 乐云践新专家梵克雅宝官网编号查询
  • 网站设计一般多少钱一个页面wordpress mp4
  • 自应式网站深圳招聘平台有哪些
  • 旅游商业网站策划书网站是陕西省城乡建设综合服务中心
  • 陕西网站建设价位多少有哪些做买家秀的网站
  • 自建网站访问报错yw27777最新跳转接口
  • 宁波做百度网站推广免费自建网站工具
  • 广东公诚通信建设监理有限公司网站什么程序做网站容易优化
  • 做教学的视频网站有哪些问题网站例子
  • 建设电商网站报价重庆网站推广专家