react元件之非受控元件和高階元件

2022-09-09 15:48:34 字數 3441 閱讀 7918

受控元件和非受控元件的區別 ----- value

import react,  from 'react'

export default class extends component

} render () ref

="username"

onchange

= else

this.setstate()

}}/>

<

input

type

="password"

defaultvalue

= ref

="password"

onchange

=) }}/>

<

input

type

="file"

ref="file"

multiple

/>

<

button

onclick

= name: "2.png"

size: 24396

type: "image/png"

webkitrelativepath: ""

*/console.log(this.refs.file.files)

} }>獲取表單資訊

button

>

div>

) }

}

高階元件其實就是乙個純函式,接收乙個元件作為引數,返回乙個新的元件

高階元件1

// 高階函式

function func (fn)

}welcomefn = func(welcome)

goodbyefn = func(goodbye)

// console.log(welcomefn)

goodbyefn()

goodbyefn()

高階元件2

import react,  from 'react'

import welcome from './welcome'

import goodbye from './goodbye'

export default class extends component

render ()

}

welcome.js

import react,  from 'react'

class com extends component

} componentdidmount () )

} render ()

div>

) }

}export default com

goodbye.js

import react,  from 'react'

class com extends component

} componentdidmount () )

} render ()

div>

) }

}export default com

簡化高階元件3

import react,  from 'react'

import welcome from './welcome'

import goodbye from './goodbye'

export default class extends component

render ()

}

welcome.js

import react,  from 'react'

import higherorderfn from './higherorderfn'

// console.log(higherorderfn)

class com extends component

div>

) }

}const newcom = higherorderfn(com)

export default newcom

goodbye.js

import react,  from 'react'

import higherorderfn from './higherorderfn'

// console.log(higherorderfn)

class com extends component

div>

) }

}const newcom = higherorderfn(com)

export default newcom

higherorderfn.js

import react,  from 'react'

import higherorderfn from './higherorderfn'

// console.log(higherorderfn)

class com extends component

div>

) }

}const newcom = higherorderfn(com)

export default newcom

React 之受控元件和非受控元件

在react中,所謂受控元件和非受控元件,是針對表單而言的。表單受控元件class control extends react.component e為原生的事件繫結物件 handlechange e render 使用者名稱 username type text value onchange 密碼...

React之受控元件與非受控元件

受控元件 假設我們現在有乙個表單,表單中有乙個input標籤,input的value值必須是我們設定在constructor建構函式的state中的值,然後,通過onchange觸發事件來改變state中儲存的value值,這樣形成乙個迴圈的迴路影響。也可以說是react負責渲染表單的元件仍然控制使...

react 表單(受控元件和非受控元件)

我們知道表單元素與其他的普通dom元素來說是不一樣的,它們儲存了自己的一些狀態。我們主要說的就是表單元素中的受控元件和非受控元件。受控元件就是這個元件的狀態是我們 react 控制的,這個元件的行為是完全受到我們控制的,所以叫做受控元件,比如 1 class nameform extends rea...