国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

React props和state屬性的具體使用方法

2024-05-06 15:20:00
字體:
來源:轉載
供稿:網友

在上一節中,我們講到了React組件,說了如何使用ES6類創建一個React組件并在其他的地方使用它。這一節我們將講到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 (      <div>        <h1>Hello, {this.props.firstName + ' ' + this.props.lastName}</h1>      </div>    );  }}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>    );  }}ReactDom.render(  <Hello/>,  document.getElementById('root'));

只需在ES6類中聲明一個static的props默認值即可,運行效果和上面一樣。

props沒有多復雜,稍微練習即可習得。

state、組件生命周期

你可能回想,如果我想在React組件中添加動態效果怎么辦?目前學過的知識好像無法解決這一問題。

這一問題需要使用React組件的state來解決,state即狀態的意思,在React中,所有會變化的控制變量都應該放入state,每當state中的內容變化時,頁面的相應組件將會被重新渲染,另外,state完全是組件內部的東西,外部無法向內部傳遞state,也無法直接改變state的值。

先來舉一個例子:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 长阳| 宁乡县| 宁强县| 康乐县| 阳曲县| 馆陶县| 黄石市| 兴文县| 碌曲县| 五寨县| 梁山县| 龙岩市| 高密市| 营山县| 万宁市| 增城市| 扶余县| 道孚县| 泗阳县| 博兴县| 枞阳县| 嵩明县| 左权县| 漯河市| 屯门区| 和硕县| 北宁市| 高密市| 闽侯县| 万年县| 阜阳市| 互助| 余姚市| 炉霍县| 霍林郭勒市| 石首市| 临高县| 武宣县| 武宣县| 武陟县| 新绛县|