關於16 6版本的react元件傳參

2021-10-03 03:59:56 字數 2373 閱讀 2194

元件傳參父傳子:

父元件

import react,  from 'react';

import three from '../three';

export default class two extends component ;

} incrime = () => );

// 要保證自身先+1再賦值,所以不可以用++,不過++可以放在前面

};render() = this.state;

return (

來自父元件的

+ );

}}

子元件:

import react,

from

'react'

;export

default

class

three

extends

component;}

static

getderivedstatefromprops

(props, state)

;// props引數一定要放前面

// 這個鉤子函式就是為了改變state的值,準確來說這是要更新派生的state,此方法為新增

}// 舊版方法不是靜態,可以直接呼叫this

// 此為更新階段的鉤子函式,已經廢棄

// componentwillreceivprops(props) );

// }

// 為什麼此方法廢棄,因為react把核心渲染演算法改變了(fiber演算法),所以帶will的渲染鉤子函式不安全了,現在react渲染的時候是可以被打斷的

render()

<

/div>;}

}

元件傳參父子相互傳參:

父元件通過constructor傳,子元件也通過constructor接收

子元件中的值必須是state中的乙個變數,派生狀態的值來自props

不是父元件中的所有傳過來的值都叫做派生狀態,而是父元件的值傳遞給了子元件的state,這才叫派生狀態

父元件:

import react,

from

'react'

;import item from

'../item/index'

;export

default

class

todos

extends

component,,

]};}

change

= index =>);

};render()

=this

.state;

return

(>

change=

/>

<

/li>);

})}<

/ul>

<

/div>);

}}// 這是父元件給子元件傳值

子元件:

import react,

from

'react'

;export

default

class

item

extends

purecomponent

getsnapshotbeforeupdate

(prevprops, prevstate)

componentdidmount

(prevprops, prevstate, snapshot)

render()

=this

.props;

return

(type=

"checkbox"

checked=

onchange=

/>

}>

<

/span>

<

/div>);

}}// 第二套效能優化方案,使用react.memo進行淺比對,是對無狀態元件的效能優化工具

// let item = react.memo((props) => = props;

// return (

//

// // type="checkbox"

// checked=

// onchange=

// />

//

//

// )

// });

// export default item;

/*子元件再反過來給父元件傳值

此時*/

關於Python2 0版本與3 0版本中類的區別

在2.0中類的定義是可以通過定義函式的形class person def init self,name,age,gender print 進入person的初始化 self.name name self.age age self.gender gender print 離開person的初始化 de...

React16版本Hook鉤子函式的簡單理解

用於返回元件的初始化state並且返回更新方法,它只關心你傳入的初始值,可以包裝一下更便於抽出邏輯,元件只用於渲染。usestate返回的第乙個引數就是你initialstate傳入的值,也只是這個值,其他的不會影響這個值 如下面 的注釋 第二個引數是更新該值的方法,可以看到precount返回的也...

關於Django 1 3版本的bug說明

近期將django 1.3用於生產環境,偶然發現在自定義爬蟲請求時候報錯 仔細檢查django原始碼,發現在 site packages django http init py 檔案的269行 self.meta.get content type 沒有做空值判斷所以產生此空指標異常 如果用1.3版本...