最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react生命周期(類組件/函數(shù)組件)操作代碼

 更新時(shí)間:2023年01月06日 16:10:51   作者:南玖i  
react代碼模式分為兩種類組件和函數(shù)組件(生命周期也有所不同),這篇文章主要介紹了react生命周期(類組件/函數(shù)組件),需要的朋友可以參考下

1.react代碼模式分為兩種 類組件和函數(shù)組件(生命周期也有所不同)

2.類組件(寫法如下)

import React from 'react'
export default class App1 extends React.Component{
    state = {
        username:'',
        password:''
    }
    setUser = (event) => {
        this.setState({username:event.target.value})
    }
    setPass = (event) => {
        this.setState({password:event.target.value})
    }
    Submit = () => {
        console.log(this.state.username , this.state.password)
    }
    render(){
        return(
            <>
              <input type="text" value={this.state.username} onChange={this.setUser}/>
              <input type="text" value={this.state.paddword} onChange={this.setPass}/>
              <button onClick={this.Submit}>登錄</button>
            </>
        )
    }
}

3.函數(shù)組件

import { useState ,useEffect} from "react"
function App1 (){
    const [username ,setUsername] = useState('')
    const [password ,setPassword] = useState('')
    const setChange = event => {
        setUsername(event.target.value);
      };
      const setChangePassWold = event => {
        setPassword(event.target.value);
      };
      const Submit = () =>{
          console.log(username,password)
      }
    return(
        <>
         <input value={username} onChange={setChange}></input>
         <input value={password} onChange={setChangePassWold}></input>
         <button onClick={Submit}>登錄</button>
        </>
    )
}
export default  App1

以上是兩種模式的寫法展示

4.類組件和函數(shù)組件的區(qū)別:

  • 類組件:state定義狀態(tài)變量,有繼承,而且是oop模式(面向?qū)ο缶幊蹋?/li>
  • 類組件缺點(diǎn):復(fù)用性不如函數(shù)組件,比較難拆分
  • 函數(shù)組件:根基是FP(函數(shù)式編程), 沒有this指向,使用一些列Hooks實(shí)現(xiàn)對(duì)應(yīng)的功能
  • 函數(shù)式組件缺點(diǎn):不具備處理錯(cuò)誤的邊界等業(yè)務(wù)情況的Hooks

5.生命周期

  A.類組件生命周期(三個(gè)階段:掛載階段,更新階段,卸載階段)

掛載階段執(zhí)行順序 

1.constructor

2.componentWillMount

3.render

4.componentDidMount

更新階段執(zhí)行順序

1.shouldComponentUpdate

2.componentWillUpdate

3.render

4.componentDidUpdate

銷毀階段

componentWillUnmount

實(shí)際操作如下

import React  from "react";
import {Link} from 'react-router-dom'
class Demo extends React.Component{
  
    constructor(props){
        super(props)
        console.log("constructor")
    }
    state = {
        num:1
    }
    UNSAFE_componentWillMount(){
        console.log("componentWillMount")
    }
    componentDidMount(){
        console.log("componentDidMount")
    }
    shouldComponentUpdate(){
      console.log('shouldComponentUpdate')
      return true
    }
    UNSAFE_omponentWillUpdate(){
        console.log("componentWillUpdate")
    }
    componentDidUpdate(){
        console.log("componentDidUpdate")
    }
    componentWillUnmount(){
        console.log("componentWillUnmount")
    }
    Submit = () =>  {
        this.setState({num:this.state.num+=1})
    }
    render(){
        console.log('render')
        return(
            <>
              <Link to='/app1'>App1</Link>
              //這里替換成自己的即可
              <h3>{this.state.num}</h3>
              <button onClick={this.Submit}>改變</button>
            </>
        )
    }
}
export default Demo

更新階段

 B.函數(shù)組件生命周期,函數(shù)組件本質(zhì)沒有生命周期,但是我們通過Hooks來模仿類組件當(dāng)中的生命周期(也是三個(gè)階段)

import { useState ,useEffect} from "react"
import {Link} from 'react-router-dom'
function App1 (){
    const [username ,setUsername] = useState('')
    const [password ,setPassword] = useState('')
    const setChange = event => {
        setUsername(event.target.value);
      };
      const setChangePassWold = event => {
        setPassword(event.target.value);
      };
      const Submit = () =>{
        setUsername('')
          console.log(username,password)
      }
        // useEffect  =  vue mounted 區(qū)別是只要視圖更新就變化 感覺類似watch 但是他又是初始化的 時(shí)候第一個(gè)
        //  useEffect(()=>{},[])
        useEffect(()=>{
          console.log('模擬componentDidMount第一次渲染')
            return () =>{
                console.log('模擬componentWillUnmount執(zhí)行銷毀后')
            }
        },[password])
    return(
        <>
          <Link to='/home1'>home1</Link>
            //這里需要修改成自己的路徑
          <input value={username} onChange={setChange}></input>
          <input value={password} onChange={setChangePassWold}></input>
          <button onClick={Submit}>登錄</button>
        </>
    )
}
export default  App1

//useEffect是react給我們的Hooks 我們可以使用它來模擬正常的生命周期流程

 useEffect(()=>{},[]) 是他的格式 ,第二個(gè)參數(shù)是需要監(jiān)聽誰的變化就寫誰,也可以不寫

到此這篇關(guān)于react生命周期(類組件/函數(shù)組件)的文章就介紹到這了,更多相關(guān)react生命周期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react自動(dòng)化構(gòu)建路由的實(shí)現(xiàn)

    react自動(dòng)化構(gòu)建路由的實(shí)現(xiàn)

    這篇文章主要介紹了react自動(dòng)化構(gòu)建路由的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • React事件綁定的方式詳解

    React事件綁定的方式詳解

    react事件綁定時(shí)。this并不會(huì)指向當(dāng)前DOM元素。往往使用bind來改變this指向,今天通過本文給大家介紹React事件綁定的方式,感興趣的朋友
    2021-07-07
  • react無限滾動(dòng)組件的實(shí)現(xiàn)示例

    react無限滾動(dòng)組件的實(shí)現(xiàn)示例

    本文主要介紹了react無限滾動(dòng)組件的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • React操作真實(shí)DOM實(shí)現(xiàn)動(dòng)態(tài)吸底部的示例

    React操作真實(shí)DOM實(shí)現(xiàn)動(dòng)態(tài)吸底部的示例

    本篇文章主要介紹了React操作真實(shí)DOM實(shí)現(xiàn)動(dòng)態(tài)吸底部的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • React antd tabs切換造成子組件重復(fù)刷新

    React antd tabs切換造成子組件重復(fù)刷新

    這篇文章主要介紹了React antd tabs切換造成子組件重復(fù)刷新,需要的朋友可以參考下
    2021-04-04
  • React實(shí)現(xiàn)路由返回?cái)r截的三種方式

    React實(shí)現(xiàn)路由返回?cái)r截的三種方式

    最近項(xiàng)目為了避免用戶誤操作導(dǎo)致數(shù)據(jù)丟失,增加返回?cái)r截功能,但是之前由于qiankun的報(bào)錯(cuò)導(dǎo)致這個(gè)功能一直有一些問題,所以專門獨(dú)立搞了一個(gè)專題研究在react中各種方式實(shí)現(xiàn)這個(gè)功能,需要的朋友可以參考下
    2024-05-05
  • 基于React Context實(shí)現(xiàn)一個(gè)簡單的狀態(tài)管理的示例代碼

    基于React Context實(shí)現(xiàn)一個(gè)簡單的狀態(tài)管理的示例代碼

    本文主要介紹了基于React Context實(shí)現(xiàn)一個(gè)簡單的狀態(tài)管理的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • React + Node.js實(shí)現(xiàn)圖片上傳功能

    React + Node.js實(shí)現(xiàn)圖片上傳功能

    最近筆者在開發(fā)個(gè)人博客的后臺(tái)管理系統(tǒng),里面用到了圖片上傳相關(guān)的功能,在這里記錄并分享一下,希望可以幫到大家,話不多說直接開始吧,感興趣的朋友可以參考下
    2024-01-01
  • React Hooks使用常見的坑

    React Hooks使用常見的坑

    React Hooks 是 React 16.8 引入的新特性,允許我們?cè)诓皇褂?Class 的前提下使用 state 和其他特性。接下來通過本文給大家分享React Hooks使用避坑指南,一起學(xué)習(xí)下吧
    2021-06-06
  • react同構(gòu)實(shí)踐之實(shí)現(xiàn)自己的同構(gòu)模板

    react同構(gòu)實(shí)踐之實(shí)現(xiàn)自己的同構(gòu)模板

    這篇文章主要介紹了react同構(gòu)實(shí)踐之實(shí)現(xiàn)自己的同構(gòu)模板,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論

柏乡县| 突泉县| 二连浩特市| 水富县| 原平市| 军事| 南和县| 驻马店市| 罗山县| 施秉县| 宜州市| 礼泉县| 牟定县| 新乡县| 高州市| 彭州市| 进贤县| 固安县| 翁牛特旗| 阿克苏市| 通海县| 德化县| 丰原市| 九龙坡区| 诏安县| 聂荣县| 广丰县| 新和县| 浠水县| 德清县| 乃东县| 锡林浩特市| 青河县| 尚志市| 江津市| SHOW| 罗城| 长岛县| 镇安县| 四子王旗| 南雄市|