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

新网站怎样做外链建站记录查询

新网站怎样做外链,建站记录查询,注册公司都需要什么材料,如何使用云服务建设网站目录 useReducer案例1#xff1a;useReducer不带初始化函数案例2#xff1a;useReducer带初始化函数注意事项1#xff1a;dispatch函数不会改变正在运行的代码的状态注意事项2#xff1a;获取dispatch函数触发后 JavaScript 变量的值注意事项3#xff1a;触发了reduceruseReducer不带初始化函数案例2useReducer带初始化函数注意事项1dispatch函数不会改变正在运行的代码的状态注意事项2获取dispatch函数触发后 JavaScript 变量的值注意事项3触发了reducer但页面没有更新 React官方文档 useReducer useReducer是一个 React Hook可让你向组件添加一个Reducer 。 用法 const [state, dispatch] useReducer(reducer, initialArg, init?)reducer指定状态如何更新的 Reducer 函数接受两个参数state(状态)和action(操作)两个参数并返回下一个状态initialArg初始值可以是任何类型的值可选 init应返回初始状态的初始化函数。如果未指定则将初始状态设置为initialArg。否则将初始状态设置为调用的结果init(initialArg) useReducer返回一个包含两个值的数组 state(当前状态):在第一次渲染期间它被设置为init(initialArg)或initialArg如果没有initdispatch该dispatch函数可让您将状态更新为不同的值并触发重新渲染 案例1useReducer不带初始化函数 步骤 1、定义一个reducer函数根据不同的action返回不同的状态 2、组件中调用userReducer(reducer,initialArg) 3、调用dispatch({type:“INC”})通知reducer产生一个新的状态随后更新UI const idata {count:0}; function reducer(state, action) {console.log(state,state)console.log(action,action)switch (action.type) {case INC:return {count:state.count1}case DEC:return {count:state.count-1}case SET:return {count:action.payload}default:return {count:idata}} } function App() {const [state, dispatch] useReducer(reducer, idata);return (div classNameAppthis is App{state.count}button onClick{() dispatch({ type: INC })}/buttonbutton onClick{() dispatch({ type: DEC })}-/buttonbutton onClick{() dispatch({ type: SET, payload: 100 })}update/button/div); }export default App;案例2useReducer带初始化函数 设置initData为初始化函数设置state初始状态 #App.js import Son from ./Son.js; function App() {return (div classNameAppSon idata{{count:1}}/Son/div);}export default App; #Son.js import { useReducer } from react;const initData(){return {count:0} }function reducer(state, action) {console.log(state,state)console.log(action,action)switch (action.type) {case INC:return {count:state.count1}case DEC:return {count:state.count-1}case SET:return {count:action.payload}default:return initData() } }const Son ({idata}) {console.log(idata,idata)const [state, dispatch] useReducer(reducer, idata,initData);return (div classNameAppthis is AppdivCount {state.count}/divbutton onClick{() dispatch({ type: INC })}/buttonbutton onClick{() dispatch({ type: default })}default/buttonbutton onClick{() dispatch({ type: DEC })}-/buttonbutton onClick{() dispatch({ type: SET, payload: 100 })}update/button/div); }export default Son; 注意事项1dispatch函数不会改变正在运行的代码的状态 点击update按钮handler函数触发之后页面Count显示为100但是打印出来state.count为0 dispatch函数不会改变正在运行的代码的状态更新状态会请求使用新状态值进行另一次渲染但不会影响state已在运行的事件处理程序中的 JavaScript 变量。 #Son.js import { useReducer } from react; const initData () {return { count: 0 } } function reducer(state, action) {switch (action.type) {case INC:return { count: state.count 1 }case DEC:return { count: state.count - 1 }case SET:return { count: action.payload }default:return initData()} }const Son ({ idata }) { const [state, dispatch] useReducer(reducer, idata, initData);const handler (){dispatch({ type: SET, payload: 100 })console.log(state.count,state)setTimeout((){console.log(state.count,state)},1000)}return (div classNameAppthis is AppdivCount {state.count}/divbutton onClick{() dispatch({ type: INC })}/buttonbutton onClick{() dispatch({ type: default })}default/buttonbutton onClick{() dispatch({ type: DEC })}-/buttonbutton onClick{() handler()}update/button/div ); }export default Son; 注意事项2获取dispatch函数触发后 JavaScript 变量的值 执行reducer(state, action)之后就可以拿到最新的变量的值 const handler (){let action { type: SET, payload: 100 };dispatch(action)console.log(state,state) //打印0setTimeout((){console.log(state,state) //打印0},1000)const nextState reducer(state, action);console.log(nextState,nextState) //打印100}注意事项3触发了reducer但页面没有更新 直接更改状态中的对象或数组并不会重新渲染。因为下一个状态等于前一个状态则React 将忽略您的更新Object.is指向的还是同一个引用地址。所以需要始终更新状态中的对象和状态中的数组。如下 function reducer(state, action) {switch (action.type) {case incremented_age: {// ✅ Correct: creating a new objectreturn {...state,age: state.age 1};}case changed_name: {// ✅ Correct: creating a new objectreturn {...state,name: action.nextName};}// ...} }
http://www.hkea.cn/news/14409273/

相关文章:

  • 网站首页设计一般包括那三个靖州网站建设
  • 优化网站加载速度沭阳哪里有做网站推广的
  • 网站推广服务合同南京 公司网站制作
  • 凡科网做网站教程网站解析什么意思
  • 版面设计网站有哪些网站用免费空间好不好
  • 做网站的程序源码品牌网站查询
  • 有网站如何做直播青岛seo网络优化公司
  • 免费dedecms企业网站模板全网搜索关键词查询
  • 网站的安全性建设电商网红排行榜
  • 有哪些做文创产品的网站天津信息港
  • 南京玄武网站建设wordpress 购物商城
  • 信阳工程建设一体化平台网站58同城房产信息
  • 一个网站怎么做镜像站帮做论文网站吗
  • 好好建站我做网站啦 圆通导航
  • asp官方网站3d网站开发
  • 特色产品推广方案业务型网站做seo
  • 建立网站程序网页设计作业素材
  • 广东网站建设公司报价做网站的业务分析
  • 无锡高端网站设计制作物联网系统设计方案
  • 广东省最差的三座城市seo做的比较好的网站的几个特征
  • 提供网站建设定制做专业网站设计多少钱
  • 博纳网站建设如何开网站
  • 青岛市工程建设信息网站做盗版电影网站犯法不
  • 网站空间流量不够以数字域名为网址的网站
  • 承接做网站百度提升优化
  • 网站的维护工作内容建站平台哪个最好
  • 网站建设制作视频教程做网站首页轮播图代码
  • 咸阳网站建设工作室网站管理建设的需求分析
  • 网站的站内结构锚文本是如何做的城市文明建设网站
  • 网站打开空白 重启iis就好了wordpress移除头部无用