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

做PHP网站前端网站进不去地方域名注册

做PHP网站前端网站进不去,地方域名注册,wordpress视频网站上传视频,微信app下载安装旧版本概念 组件从被创建到挂载到页面中运行,再到组件不用时卸载的过程。 只有类组件才有生命周期。 分为三个阶段: 挂载阶段更新阶段销毁阶段 三个阶段 挂载阶段 钩子函数 - constructor 创建阶段触发 作用:创建数据 之前定义状态是简写&…

概念

组件从被创建到挂载到页面中运行,再到组件不用时卸载的过程。

只有类组件才有生命周期。

分为三个阶段:

  1. 挂载阶段
  2. 更新阶段
  3. 销毁阶段

在这里插入图片描述

三个阶段

挂载阶段

钩子函数 - constructor

创建阶段触发

作用:创建数据

  • 之前定义状态是简写,完整写法是写在constructor函数中
  • 包括props之前也是简写,完整写法是写在constructor函数中
  • 包括ref【获取真实DOM元素/获取类组件实例】的创建,也要写在constructor函数中
class Son extends Component {constructor(props) {// 【创建阶段,目的是创建数据】最先执行super()this.state = {b: props.a,}this.iptRef = createRef()}// iptRef = createRef()  // 建立ref的简写
}

钩子函数 - render

渲染阶段触发 (每次组建渲染都会触发)

作用:渲染UI

  render() {return (<>hi :{this.state.b}<input type="text" ref={this.iptRef} /></>)// return <>hi :{this.props.a}</>  // props的简写}

钩子函数 - componentDidMount

完成DOM渲染后触发

作用:发送请求;DOM操作

componentDidMount() {// 【组建挂载完毕,目的是:发送请求;DOM操作】完成DOM渲染后触发console.log('componentDidMount')}

执行顺序

在这里插入图片描述

class App extends Component {// 挂载阶段,会经过三个钩子:constructor render componentDidMountconstructor() {// 【创建阶段,目的是创建数据】最先执行super()console.log('constructor')}render() {// 【渲染阶段,目的是渲染UI】每次组建渲染都会触发,(注意⚠️ :不能调用setState()原因是render是每次组件渲染时触发的,如果在里面凋setState(),则组件数据发生变化,肯定要重新渲染,但是重新渲染又会触发render。就会形成死循环!!!)console.log('render')return (<></>)}componentDidMount() {// 【组建挂载完毕,目的是:发送请求;DOM操作】完成DOM渲染后触发console.log('componentDidMount')}
}

在这里插入图片描述

更新阶段

更新含义:数据发生变化就会引起组件的更新

钩子函数 - render()

每次组件重新渲染(数据发生变化)执行

  1. 默认挂载阶段会执行一次
  2. 更新阶段执行
    1. 调用了setState方法
    2. forceUpdate(强制更新)
    3. props传递的数据更新了

钩子函数 - componentDidUpdate()

  1. 更新阶段执行
    1. 调用了setState方法
    2. forceUpdate(强制更新)
    3. props传递的数据更新了
import React, { Component } from 'react'
import ReactDOM from 'react-dom/client'
export default class App extends Component {// 挂载阶段,会经过三个钩子:constructor render componentDidMountconstructor() {// 【创建阶段,目的是创建数据】最先执行super()this.state = {a: 100,b: 50,}console.log('constructor')}handelChange = () => {this.setState({a: this.state.a + 1,})this.state.b += 1this.forceUpdate() // 强更新(强制DOM更新) 如果不调用这个方法,b的数据会变化,但是,DOM无法更新console.log(this.state.b)}render() {console.log('render')return (<><div>{this.state.a} --- {this.state.b}</div><button onClick={this.handelChange}>修改</button></>)}componentDidMount() {// 【组件挂载完毕,目的是:发送请求;DOM操作】完成DOM渲染后触发console.log('componentDidMount')}componentDidUpdate() {// 【组件更新完毕】console.log('componentDidUpdate')}
}ReactDOM.createRoot(document.querySelector('#root')).render(<App></App>)

卸载阶段

钩子函数 - componentWillUnmount()

import React, { Component } from 'react'
let timer = -1
export default class Son extends Component {constructor() {super()console.log(' Son子组件的constructor')timer = setInterval(() => {console.log('定时器执行')}, 1000)}render() {console.log('Son子组件的render')return <div>Son</div>}componentDidMount() {console.log('Son子组件的componentDidMount')}componentDidUpdate() {console.log('Son子组件的componentDidUpdate')}// 【组件卸载,执行一些清理工作】组件即将销毁的时候,要将全局的定时任务,全局变量,全局...等等销毁componentWillUnmount() {clearInterval(timer)console.log('Son子组件销毁了componentWillUnmount')}
}

父子组件的钩子函数执行顺序

父组件constructor → 父组件的render → 子组件的constructor → 子组件的render → 子组件的componentDidMount → 父组件的componentDidMount
在这里插入图片描述

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

相关文章:

  • 德宏芒市建设局网站网站开发专业职称有哪些
  • 濮阳微信网站建设门户网站建设的好处
  • 人才交流网站建设与设计医院网站建设熊掌号
  • 云vps怎么搭建网站网页设计入门与应用电子书pdf百度网盘
  • wordpress网站数据库存在哪里陕西省西安市网站建设公司
  • 郑州网站制作公司名单网站正在建设中 html源码
  • wordpress开启多站点后台没显示什么叫营销
  • 上海博道投资管理公司的网站谁做的软件定制开发一般多少钱
  • 网站欢迎页模板做外贸的网站都有哪些
  • 互联网公司运营seo技术服务
  • 广州网站建设加盟乐清企业
  • 什么做网站华春建设工程项目管理有限公司网站
  • asp.net建网站网站优化seo培
  • 佛山seo整站优化承接广东整治互联网霸王条款
  • 学校网站 制作做网站标题居中代码
  • 成都网站建设 常凡云wordpress版权信息
  • 怎样创建网站教程中国最新消息开火
  • 敦煌网站做外贸怎样网站备案 查询
  • 济宁住房与建设网站怎么做百度网盘链接网站
  • 钦州住房和城乡建设局网站自己怎么做卡密网站
  • 开发一套网站多少钱wordpress多久学会
  • 用手机建立网站基础做网站的小结
  • 网站开发投标文件人工智能软件定制
  • 自建站模板wordpress首页显示友情链接
  • 网站建设教程讲解网站ftp密码怎么修改
  • 青海哪家做网站的公司最大wordpress 失眠先生
  • 加强机构编制网站建设力度甘肃中高风险地区
  • 建网站要多少钱用自己的服务器网络管理中心网站
  • 游戏网站建设杭州wordpress 屏蔽谷歌字体
  • 邮箱163登录东莞做网站乐云seo