当前位置: 首页 > 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/467080.html

相关文章:

  • 建设商业网站的功能定位安徽百度seo教程
  • 深圳 服装 网站建设seo怎么做整站排名
  • 郑州网站建设设计山西网页制作
  • 怎么做才能让网站快速收录西安关键词排名提升
  • 石景山青岛网站建设b站推广网站入口2023的推广形式
  • 辽宁省建设工程信息网推荐中项网潍坊seo关键词排名
  • 电子商务网站的建设和维护网站页面分析作业
  • 白石龙做网站查数据的网站有哪些
  • wordpress怎么弄表单湖南有实力seo优化
  • 高端网站建设套餐百度指数怎么下载
  • 淄博做网站建设智能网站推广优化
  • 网站建设算不算固定资产网络营销的推广方式
  • 网站建设用什么软件杭州营销策划公司排名
  • 网站调用网页怎么做电商网站对比表格
  • 进入公众号信阳云seo交流博客
  • 科技型中小企业服务网郑州seo阿伟
  • 泰州哪家做网站建设比较好如何制作微信小程序店铺
  • 杭州互联网网站定制公司腾讯控股第三季度营收1401亿
  • 企业3合1网站建设电话营销渠道有哪几种
  • 昆山建设监察大队网站网站建设报价单
  • 360搜索网站提交百度上做推广怎么收费
  • 新疆建设网查询中心seo排名的方法
  • 做网站的一些话术怎样在浏览器上找网站
  • 易语言可以做api网站对接吗seo快速排名外包
  • 免费搭建seo营销网站
  • 做网站后台程序是怎么来的seo推广优化官网
  • 比较好的做网站的公司seo实战指导
  • 上海建设网站的网站老哥们给个关键词
  • 党建网站怎么做网站建设公司seo关键词
  • 求免费网站能看的2021推广资源网