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

php网站开发实例教程 源代码免费引流推广方法

php网站开发实例教程 源代码,免费引流推广方法,微商新零售系统,湖南省郴州市政府官网useStateuseEffectuseRef 什么是hook?16.8版本出现的新特性。可以在不编写class组件的情况下使用state以及其它的React特性 为什么有hook?class组件很难提取公共的重用的代码,然后反复使用;不编写类组件也可以使用类组件的状态st…

  • useState
  • useEffect
  • useRef

什么是hook?16.8版本出现的新特性。可以在不编写class组件的情况下使用state以及其它的React特性

为什么有hook?class组件很难提取公共的重用的代码,然后反复使用;不编写类组件也可以使用类组件的状态state。hook解决函数组件很多功能的问题(state \ 生命周期 \ ref)

hook都是以useXxx开头,并且必须在函数组件内部使用,不能在外面用,否则报错

useState

使用时需要 import {useState} from "react";

let [a,setA]=useState(1);
a:变量名,setA:设置前一个参数的函数,useState(初始化值):此函数返回一个数组对象[]
值:初始化的值,函数:为了修改设置的初始值

setXxx(修改值的方法),这个函数是一个异步函数
调用完不会立刻执行,而是等待页面上所有需要的内容修改完毕之后执行,和虚拟dom的机制有关

import './App.css';
// import {Component} from "react";
import {useState,useEffect} from "react";
//引入子组件
import DoubleKill from "./DoubleKill";
import TripleKill from "./TripleKill";//函数组件
function App() {// let a=1; //声明了页面要使用的数据let [a,setA]=useState(1)let [b,setB]=useState(true)let [arr,setArr]=useState([1,2,3,4,5])let [c,setC]=useState(0)let Com;if(c===0){Com=<DoubleKill/>}else{Com=<TripleKill/>}useEffect(()=>{ //组件一加载就会执行,看做ComponentDidMount,只要数据发生变化它就会执行一次console.log("a---useEffect")},[a])useEffect(()=>{console.log("b---useEffect")},[b])return (<div className="App"><h2>我的react-APP</h2>{/*<h1>{a}</h1><button onClick={()=>{a=2;console.log(a) //页面并不会更新(因为这里的数据不是响应式数据)}}>修改</button>*/}<h1>{a} / {b?"真":"假"}</h1><ul>{arr.map((v,i)=>{return <li key={i}>{v}</li>})}</ul><button onClick={()=>{let _a=a*2;setA(_a);let _arr=[...arr];_arr.push(arr.length+1);setArr(_arr)// console.log(a,b) 异步}}>修改a / arr</button><button onClick={()=>{setB(!b);}}>修改b</button><hr/><button onClick={()=>{setC(0)}}>展示DoubleKill组件</button><button onClick={()=>{setC(1)}}>展示TripleKill组件</button>{Com}</div>);
}//类组件
/*class App extends Component{render(){return(<div className="App"><h2>我的react-APP</h2></div>)}
}*/export default App;

useEffect

组件挂载后和更新数据后都会执行,并且可以在函数组件中多次使用

useEffect(()=>{ console.log("a---useEffect")
},[a])useEffect(()=>{console.log("b---useEffect")
},[b])

如果只想挂载后执行,更新数据不执行呢?useEffect的第二个参数,是一个数组

useEffect(fn) -----监控所有数据的变化,一旦有数据变化就会执行该函数
useEffect(fn,[]) -----空数组,表示不监控任何数据的变化,只在挂载的时候执行一次
useEffect(fn,[a]) -----监听某一个数据的变化,只有这个数据变化了,才会再次执行useEffect(()=>{//组件卸载后执行return中的内容return ()=>{//console.log("完毕");}
})

useRef

函数组件中使用useRef拿页面节点

let p2=useRef(null);
<p ref={p2}>p2</p>
console.log(p2.current); //拿到p2节点
import './App.css';
import {useEffect,useRef} from "react";function App() {let p1=useRef(null); //一般初始值给nulllet p2=useRef(null);useEffect(()=>{console.log(p1.current)console.log(p2.current)})return (<div className="App"><p ref={p1}>p1</p><p ref={p2}>p2</p></div>);
}export default App;
http://www.dtcms.com/wzjs/111112.html

相关文章:

  • 漳州做网站设计艺人百度指数排行榜
  • 用asp做网站课程我要恢复百度
  • wordpress建站多个域名全网推广网站
  • 梅县区住房和城乡规划建设局官方网站兰州网络seo公司
  • 年栾洪全单页做网站教程wordpress自助建站
  • 做网站是干什么的找资源最好的是哪个软件
  • 全球做的比较好的网站有哪些关键词分类哪八种
  • 量力商务大厦网站建设桔子seo
  • 上海英文网站建设公司石家庄热搜
  • 济南做网站的公司线上营销公司
  • 黔西南州建设银行网站seo刷词
  • 建设网站方案ppt爱站网影院
  • 网站建设神州互动企业seo网络推广
  • seo网站推广优化论文网站优化推广哪家好
  • 武汉sem廊坊推广seo霸屏
  • 新网站建设平台seo服务合同
  • 滁州做网站培训体系包括四大体系
  • 网站seo搜索北京网站优化校学费
  • 无锡网站建设人员推广策略包括哪些内容
  • 清远市建设局网站东营优化公司
  • 昆明商城网站开发营销型网站开发公司
  • 如何把做的网站变成链接seo是如何优化
  • 武汉最好的网站建设公司网站权重查询接口
  • 网站建设的论坛东莞市优速网络科技有限公司
  • 外贸开发模板网站模板2023全民核酸又开始了
  • 做设计学什么英语比较好的网站武汉网络优化知名乐云seo
  • 外贸网站怎么做谷歌搜索宽带营销策略
  • 竞价单页网站制作免费找精准客户软件
  • 网站建设电话话术最新国际新闻10条
  • 建设网站公司域名杭州百度竞价推广公司