国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

受控組件和非受控組件,強力一波

FrancisSoung / 3392人閱讀

摘要:受控組件其值由控制的輸入表單元素稱為受控組件。如果讓表單數(shù)據(jù)由處理時,替代方案為使用非受控組件。使用非受控組件時,通常你希望可以為其指定初始值,但不再控制后續(xù)更新。

受控組件
其值由React控制的輸入表單元素稱為“受控組件”。
class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {value: ""};

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleChange(event) {
    this.setState({value: event.target.value});
  }

  handleSubmit(event) {
    alert("A name was submitted: " + this.state.value);
    event.preventDefault();
  }

  render() {
    return (
      
); } }

通過綁定onChange實現(xiàn)了類似雙向綁定
理解:首先input的顯示的值受value={this.state.value}
控制,輸入時通過onChange函數(shù)回調(diào),將新接受的值設(shè)置回this.state.value,從而再作用到組件的顯示,形成了雙向綁定的感覺

非受控組件
在大多數(shù)情況下,我們推薦使用 受控組件 來實現(xiàn)表單。 在受控組件中,表單數(shù)據(jù)由 React 組件處理。如果讓表單數(shù)據(jù)由 DOM 處理時,替代方案為使用非受控組件。
默認值 defaultValue

在 React 的生命周期中,表單元素上的 value 屬性將會覆蓋 DOM 中的值。
使用非受控組件時,通常你希望 React 可以為其指定初始值,但不再控制后續(xù)更新。要解決這個問題,你可以指定一個 defaultValue 屬性而不是 value。

render() {
  return (
    
); }
文件輸入標簽

在React中, 始終是一個不受控制的組件,因為它的值只能由用戶設(shè)置,而不是以編程方式設(shè)置。

class FileInput extends React.Component {
  constructor(props) {
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this);
  }
  handleSubmit(event) {
    event.preventDefault();
    alert(
      `Selected file - ${this.fileInput.files[0].name}`
    );
  }

  render() {
    return (
      

); } } ReactDOM.render( , document.getElementById("root") );

受控和非受控你該怎么選

原文
Conclusion
Both the controlled and uncontrolled form fields have their merit. Evaluate your specific situation and pick the approach — what works for you is good enough.
If your form is incredibly simple in terms of UI feedback, uncontrolled with refs is entirely fine. You don’t have to listen to what the various articles are saying is “bad.”
Also, this is not an once-and-for-all decision: you can always migrate to controlled inputs. Going from uncontrolled to controlled inputs is not hard.
兩種方法都有各自的優(yōu)點,根據(jù)具體使用場景評估一下,從中選擇一種更適合的方式,如果表單在UI反饋方面非常簡單,那么使用ref的不受控組件就完全沒有問題。你不必聽各種各樣的文章說什么是“壞的”,同樣也不是說不能更改,畢竟總是可以轉(zhuǎn)換到可控制的,使用受控的話也不是很費勁。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110223.html

相關(guān)文章

  • React中受控與非受控組件

    摘要:首次發(fā)表在個人博客受控組件或都要綁定一個事件每當(dāng)表單的狀態(tài)發(fā)生變化都會被寫入組件的中這種組件在中被稱為受控組件在受控組件中組件渲染出的狀態(tài)與它的或者向?qū)?yīng)通過這種方式消除了組件的局部狀態(tài)是的應(yīng)用的整個狀態(tài)可控官方同樣推薦使用受控表單組件總結(jié) 首次發(fā)表在個人博客 受控組件 { this.setState({ value: e.target.val...

    wenhai.he 評論0 收藏0
  • React組件編寫思路(二)

    摘要:那什么時候使用受控組件,什么時候使用非受控組件呢我們知道受控組件是比較符合我們傳統(tǒng)組件開發(fā)的思路的。故最基本的組件編寫套路就這些。 上一篇講了 React 兩種最常見的組件:受控組件和非受控組件。為了可用性,我們一般編寫出來的組件希望支持這兩種特性:可以通過組件自身的方法來改變組件的某(些)狀態(tài),也可以通過 props 的值的變化來改變組件自身的同一個(些)狀態(tài)。 組件改變自己的狀態(tài)只...

    Muninn 評論0 收藏0
  • [ 一起學(xué)React系列 -- 5 ] 如何優(yōu)雅得使用表單控件

    摘要:假如我們從后臺拉取一個數(shù)據(jù)要填入輸入框,那么必須得使用受控組件,因為非受控組件只能被用戶輸入。不影響正常輸入填充該輸入框的默認值,此時不顯示內(nèi)容。 網(wǎng)頁中使用的form表單大家肯定都再熟悉不過了,它主要作用是用來收集和提交信息。React中的表單組件與我們普通的Html中的表單及其表現(xiàn)形式?jīng)]有什么不同,所以如何使用表單我覺得再拿出來說可能是畫蛇添足、毫無意義。不過再怎么樣也不能辜負大家...

    Charlie_Jade 評論0 收藏0
  • 掌握react,這一篇就夠了

    摘要:小明小明兒子,可以看到組件顯示了父組件的。小明受控組件和非受控組件受控組件和非受控組件這些都是指的表單組件,當(dāng)一個表單的值是通過改變的而不是通過是受控組件,否則就是非受控組件。 react眾所周知的前端3大主流框架之一,由于出色的性能,完善的周邊設(shè)施風(fēng)頭一時無兩。本文就帶大家一起掌握react。 jsx語法 前端MVVM主流框架都有一套自己的模板處理方法,react則使用它獨特的jsx...

    Enlightenment 評論0 收藏0

發(fā)表評論

0條評論

FrancisSoung

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<