1. 程式人生 > 其它 >react中導致元件渲染

react中導致元件渲染

技術標籤:reactjs

1.箭頭函式(行內函數)

function addItem(){
	log(111)
}
<Input onClick={()=>addItem}/>

此時input元件的點選事件,為行內函數建立一個新的例項,所以每次function都會指向不同的記憶體地址

2.[]

{this.props.items.map(i =>
    <Cell data={i} options={this.props.options || []} />
)}

options為空,則會使用[]。[]每次會生成新的Array,因此導致Cell每次的props都不一樣,導致需要重繪

  1. 傳入引數若是引用型別的,若不想元件渲染,則儘量不要直接寫字面量的方式
<BigListView items={items} style={{width: '100%'}}/> // style物件

BigListView 傳入style 屬性是個臨時的物件字面量,每次 MyApp 重新渲染都會建立一個全新的 物件字面量。因此對 BigListView 而言每次傳入的 props 都不同。