在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 網頁設計教程 > 詳細頁面

React中props與state屬性的用法詳細說明(代碼示例)

React中props與state屬性的用法詳細說明(代碼示例)

更新時間:2025-12-07 文章作者:未知 信息來源:網絡 閱讀次數:

網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立...
網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。
本篇文章給大家帶來的內容是關于React中props和state屬性的用法詳解(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

本篇文章主要介紹了React props和state屬性的具體使用方法,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。

props

不知道大家還記不記得xml標簽中的屬性,就像這樣:

<class id="1">
 <student id="1">John Kindem</student>
 <student id="2">Alick Ice</student>
</class>

這樣一個xml文件表達的意思是1班有兩個學生,學號為1的學生名字為John Kindem,學號為2的學生名字為Alick Ice,其中id就是屬性,你可以把它看做一個常量,它是只讀的。
html繼承自xml,而JSX從莫種意義上又是html和js的擴展,屬性的概念自然得到了傳承。
在React中,我們使用props這一概念向React組件傳遞只讀的值,就像這樣:

// 假設我們已經自定義了一個叫Hello的組件
ReactDom.render(
  <Hello firstName={'John'} lastName={'Kindem'}/>,
  document.getElementById('root')
);

在調用React組件的時候,我們可以像上面一樣向組件傳遞一些常量,以便組件在內部調用。而調用的方法,就像下面這樣:

class Hello extends React.Component {
  constructor(props) {
    super(props);
  }
 
  render() {
    return (
      <p>
        <h1>Hello, {this.props.firstName + ' ' + this.props.lastName}</h1>
      </p>
    );//歡迎加入前端全棧開發交流圈一起學習交流:864305860
  }//面向1-3年前端人員
}//幫助突破技術瓶頸,提升思維能力
 
ReactDom.render(
  <Hello firstName={'John'} lastName={'Kindem'}/>,
  document.getElementById('root')
);

在組件內部獲取傳遞過來的props,只需要使用this.props對象即可,但是在使用之前,記得復寫組件的構造函數,并且接受props的值以調用父類構造。
當然,props也能夠設置默認值,向下面這樣:

class Hello extends React.Component {
  constructor(props) {
    super(props);
  }
 
  static defaultProps = {
    firstName: 'John',
    lastName: 'Kindem'
  };
 
  render() {
    return (
      <div>
        <h1>Hello, {this.props.firstName + ' ' + this.props.lastName}</h1>
      </div>
    );//歡迎加入前端全棧開發交流圈一起吹水聊天學習交流:864305860
  }//面向1-3年前端人員
}//幫助突破技術瓶頸,提升思維能力
 
ReactDom.render(
  <Hello/>,
  document.getElementById('root')
);

只需在ES6類中聲明一個static的props默認值即可,運行效果和上面一樣。
props沒有多復雜,稍微練習即可習得。

state、組件生命周期

你可能回想,如果我想在React組件中添加動態效果怎么辦?這一問題需要使用React組件的state來解決,state即狀態的意思,在React中,所有會變化的控制變量都應該放入state,每當state中的內容變化時,頁面的相應組件將會被重新渲染,另外,state完全是組件內部的東西,外部無法向內部傳遞state,也無法直接改變state的值。
先來舉一個例子:

import React from 'react';
import ReactDom from 'react-dom';
 
class Time extends React.Component {
  constructor(props) {
    super(props);
 
    // 初始化state
    this.state = {
      hour: 0,
      minute: 0,
      second: 0
    }
  }
  componentDidMount() {
    this.interval = setInterval(() => this.tick(), 1000);
  }
 
  componentWillUnmount() {
    clearInterval(this.interval);
  }
 
  tick() {
    // 計算新時間
    let newSecond, newMinute, newHour;
    let carryMinute = 0, carryHour = 0;
    newSecond = this.state.second + 1;
    if (newSecond > 59) {
      carryMinute = 1;
      newSecond -= 60;
    }
    newMinute = this.state.minute + carryMinute;
    if (newMinute > 59) {
      carryHour = 1;
      newMinute -= 60;
    }
    newHour = this.state.hour + carryHour;
    if (newHour > 59) newHour -= 60;
 
    // 設置新狀態
    this.setState({
      hour: newHour,
      minute: newMinute,
      second: newSecond
    });
  }
 
  render() {
    return (
      <div>
        <h1>current time: {this.state.hour + ':' + this.state.minute + ':' + this.state.second}</h1>
      </div>
    );
  }
}
ReactDom.render(
  <Time/>,
  document.getElementById('root')
);

這樣就完成了一個計數器,數值一秒鐘變化一次,來講解一下代碼:首先,state的初始化是在構造函數中,像這樣:

constructor(props) {
  super(props);
 
  // 在這初始化state
  this.state = {
    ...
  }
}

而改變state是使用React組件基類中的一個自帶函數:

this.setState({
  ...
});

使用這個函數之前一定要注意this的作用域,箭頭函數中的this指向外部this,而普通函數中的this指向函數本身。
另外,這里使用到了兩個React組件的生命周期回調:`

componentDidMount() {
  // React組件被加載到dom中的時候被調用
  ...
}
componentWillUnmount() {
  // React組件從dom中卸載的時候被調用
  ...
}

所以這樣一下上面的計時器代碼應該就不是什么難事了,在React組件被加載到dom中的時候設置一個計時器,每秒鐘更新一次state,state更新的同時頁面中的組件將會被重新渲染,而當組件被卸載的時候,則需要清除定時器,就那么簡單。
不過React對于state的更新頻率,有一個最大的限度,超過這個限度則會導致頁面渲染的性能下降,大家需要注意不要在高頻函數中使用setState。

以上就是React中props和state屬性的用法詳解(代碼示例)的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 97精品国产97久久久久久粉红| av在线无限看| 欧美视频国产视频| 色香蕉在线观看| xxx中文字幕| 男人c女人视频| 国产亚洲欧美在线视频| 中文久久久久久| 国产欧美综合一区| 日本道在线视频| 日本成人在线免费视频| 欧美wwwwwww| 亚洲中文字幕无码av永久| 免费日韩视频在线观看| 国产不卡的av| 国产福利片一区二区| 天堂av免费看| 欧美一级视频在线播放| 波多野结衣天堂| 国产三级国产精品国产专区50| 一卡二卡三卡视频| 无码精品a∨在线观看中文| 日韩欧美精品在线观看视频| 激情成人在线观看| a级免费在线观看| 久热在线视频观看| 菠萝蜜视频在线观看入口| 人人妻人人添人人爽欧美一区| 又色又爽又黄视频| www.av毛片| 色戒在线免费观看| 精品人妻大屁股白浆无码| 日韩免费视频播放| 在线无限看免费粉色视频| 水蜜桃色314在线观看| 怡红院亚洲色图| 人妻av中文系列| 日韩精品在线播放视频| 国产 福利 在线| 超薄肉色丝袜足j调教99| 欧美xxxxx在线视频| 久久av高潮av| а 天堂 在线| 无码人妻精品一区二区三区66| 一本—道久久a久久精品蜜桃| 国产精品网站免费| 2022中文字幕| 18黄暴禁片在线观看| 性生活免费在线观看| 国产av人人夜夜澡人人爽麻豆| 欧美精品性生活| 国内外成人激情视频| 精品人妻人人做人人爽| 91精产国品一二三产区别沈先生| 久久久久久久久久久视频| 一本久道高清无码视频| 糖心vlog在线免费观看| 国产探花在线看| 成人性生生活性生交12| 欧美日韩一区二区在线免费观看| 国产自产在线视频| 99国产精品白浆在线观看免费| 天天av天天操| 1314成人网| 影音先锋男人的网站| 小早川怜子一区二区三区| 奇米影视四色在线| 想看黄色一级片| 熟妇熟女乱妇乱女网站| 香蕉视频xxxx| 无码人妻aⅴ一区二区三区日本| 色网站在线视频| 香蕉视频xxx| 亚洲中文字幕无码一区二区三区 | 日本特黄a级片| 成人在线看视频| 五月婷婷之综合激情| 成人亚洲精品777777大片| 中文久久久久久| 成人手机视频在线| 久久久99精品视频| 91成人在线观看喷潮教学| 国产偷人视频免费| 亚洲精品www.| www.一区二区.com| 国产二区视频在线播放| 天堂av在线网站| 狠狠噜天天噜日日噜| 久久精品免费一区二区| 亚洲另类第一页| 粉嫩av一区二区三区天美传媒 | 日韩欧美色视频| 亚洲 欧美 日韩 国产综合 在线| 亚洲熟妇av一区二区三区漫画| 国产激情在线观看视频| 极品粉嫩美女露脸啪啪| 一级全黄肉体裸体全过程| 妞干网视频在线观看| av免费网站观看| 欧洲美女和动交zoz0z| 91精品91久久久中77777老牛| 爱情岛论坛亚洲首页入口章节| 国产日产欧美一区二区| 久久久久久久激情| 国产系列第一页| www.欧美日本| 日产精品久久久久久久蜜臀| 黄色成人免费看| 日本a在线免费观看| 日本77777| 欧美一级裸体视频| 青青草视频在线免费播放| 亚洲欧美天堂在线| 91人人澡人人爽人人精品| 99久久免费观看| 久久精品一二三四| 超碰在线播放91| 亚洲美免无码中文字幕在线| 国产又大又长又粗又黄| 亚洲欧美视频二区| 欧美性猛交久久久乱大交小说| 黄色一级片黄色| 视频区 图片区 小说区| 污污视频网站免费观看| 欧美日韩中文在线视频| 国产伦精品一区二区三区四区视频_| 午夜精品免费看| 亚洲欧美在线精品| 成人性生生活性生交12| 99免费视频观看| 欧美牲交a欧美牲交aⅴ免费下载| 18禁裸男晨勃露j毛免费观看| 超碰在线免费观看97| 992tv人人草| 色哟哟免费网站| 欧美 亚洲 视频| a级黄色小视频| 久久视频这里有精品| 久久国产精品网| 国产婷婷一区二区三区| heyzo亚洲| 国产精品97在线| 男女无套免费视频网站动漫| 别急慢慢来1978如如2| 欧美精品aaaa| 色噜噜狠狠永久免费| 图片区乱熟图片区亚洲| 日韩一级片一区二区| 久久国产精品网| 男人天堂成人在线| 在线视频日韩欧美| 日本免费a视频| 人人爽人人av| 看全色黄大色大片| 黄色片视频在线免费观看| 成人黄色一区二区| 四虎免费在线观看视频| 久久综合九色综合88i| www黄色在线| 久久av高潮av| 亚洲精品午夜在线观看| 国产一二三四五| 成人亚洲视频在线观看| 浴室偷拍美女洗澡456在线| 久色视频在线播放| 一级黄色在线播放| 欧美日韩亚洲一| 久久最新免费视频| 国产自偷自偷免费一区 | 国产免费xxx| 色七七在线观看| 日韩视频 中文字幕| 日本激情视频在线| 国产高清www| www.桃色.com| 国产xxxxx视频| 99热自拍偷拍| 99久久99久久精品| 在线观看日本www| 91视频免费版污| 国产精品-区区久久久狼| 喜爱夜蒲2在线| 91大神免费观看| 亚洲成人福利在线| 毛葺葺老太做受视频| www.av毛片| 丁香婷婷综合激情| 中文字幕乱码免费| 三级av免费观看| 天天干天天草天天| 欧美综合在线观看视频| 色综合久久久久无码专区| 高清无码一区二区在线观看吞精| 亚洲欧美手机在线| 亚洲这里只有精品| 黑人粗进入欧美aaaaa| 国产日韩一区二区在线观看| 激情深爱综合网| 免费欧美一级视频| 无码精品国产一区二区三区免费|