成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

React中受控與非受控組件

wenhai.he / 1819人閱讀

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

首次發(fā)表在個(gè)人博客

受控組件
 {
        this.setState({
            value: e.target.value.toUpperCase(),
        });
    }}
/>

this.name = i} defaultValue="BeiJing" /> ); } } export default UnControlled; 對(duì)比受控組件和非受控組件

將輸入的字母轉(zhuǎn)化為大寫展示

 {
        this.setState({
            value: e.target.value.toUpperCase(),
        });
    }}
/>

直接展示輸入的字母

 {
        this.setState({
            value: e.target.value.toUpperCase(),
        });
    }}
/>
1.性能上的問題

在受控組件中,每次表單的值發(fā)生變化,都會(huì)調(diào)用一次onChange事件處理器,這確實(shí)會(huì)帶來性能上的的損耗,雖然使用費(fèi)受控組件不會(huì)出現(xiàn)這些問題,但仍然不提倡使用非受控組件,這個(gè)問題可以通過Flux/Redux應(yīng)用架構(gòu)等方式來達(dá)到統(tǒng)一組件狀態(tài)的目的.

2.是否需要事件綁定

使用受控組件需要為每一個(gè)組件綁定一個(gè)change事件,并且定義一個(gè)事件處理器來同步表單值和組件的狀態(tài),這是一個(gè)必要條件.當(dāng)然,某些情況可以使用一個(gè)事件處理器來處理多個(gè)表單域

import React, { Component } from "react";

class Controlled extends Component {
    constructor(...args) {
        super(...args);
        this.state = {
            name: "xingxing",
            age: 18,
        };
    }
    handleChange = (name, e) => {
        const { value } = e.target;
        this.setState({
            [name]: value,
        });
    }
    render() {
        const { name, age } = this.state;
        return (
            
); } } export default Controlled;
表單組件的幾個(gè)重要屬性 1.狀態(tài)屬性

React的form組件提供了幾個(gè)重要的屬性,用來顯示組件的狀態(tài)

value: 類型為text的input組件,textarea組件以及select組件都借助value prop來展示應(yīng)用的狀態(tài)

checked: 類型為radio或checkbox的組件借助值為boolean類型的selected prop來展示應(yīng)用的狀態(tài)

selected: 該屬性可作用于select組件下面的option上,React并不建議這種方式表示狀態(tài).而推薦在select組件上使用value的方式

2.事件屬性

當(dāng)狀態(tài)屬性改變時(shí)會(huì)觸發(fā)onChange事件屬性.受控組件中的change事件與HTML DOM中提供的input事件更為類似;

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92081.html

相關(guān)文章

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

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

    Charlie_Jade 評(píng)論0 收藏0
  • React深度編程:受控組件與非受控組件

    摘要:受控組件與非受控組件在官網(wǎng)與國(guó)內(nèi)網(wǎng)上的資料都不多,有些人覺得它可有可不有,也不在意。受控組件與非受控組件是處理表單的入口。認(rèn)為不能單獨(dú)存在,需要與等控制的屬性或事件一起使用。它們共同構(gòu)成受控組件,受控是受的控制。 受控組件與非受控組件在官網(wǎng)與國(guó)內(nèi)網(wǎng)上的資料都不多,有些人覺得它可有可不有,也不在意。這恰恰顯示React的威力,滿足不同規(guī)模大小的工程需求。譬如你只是做ListView這樣簡(jiǎn)...

    wpw 評(píng)論0 收藏0
  • React 進(jìn)階設(shè)計(jì)與控制權(quán)問題

    摘要:盤點(diǎn)一下,模式反應(yīng)了典型的控制權(quán)問題。異步狀態(tài)管理與控制權(quán)提到控制權(quán)話題,怎能少得了這樣的狀態(tài)管理工具。狀態(tài)管理中的控制主義和極簡(jiǎn)主義了解了異步狀態(tài)中的控制權(quán)問題,我們?cè)購(gòu)娜纸嵌冗M(jìn)行分析。 控制權(quán)——這個(gè)概念在編程中至關(guān)重要。比如,輪子封裝層與業(yè)務(wù)消費(fèi)層對(duì)于控制權(quán)的爭(zhēng)奪,就是一個(gè)很有意思的話題。這在 React 世界里也不例外。表面上看,我們當(dāng)然希望輪子掌控的事情越多越好:因?yàn)槌橄髮?..

    superw 評(píng)論0 收藏0
  • React 進(jìn)階設(shè)計(jì)與控制權(quán)問題

    摘要:盤點(diǎn)一下,模式反應(yīng)了典型的控制權(quán)問題。異步狀態(tài)管理與控制權(quán)提到控制權(quán)話題,怎能少得了這樣的狀態(tài)管理工具。狀態(tài)管理中的控制主義和極簡(jiǎn)主義了解了異步狀態(tài)中的控制權(quán)問題,我們?cè)購(gòu)娜纸嵌冗M(jìn)行分析。 控制權(quán)——這個(gè)概念在編程中至關(guān)重要。比如,輪子封裝層與業(yè)務(wù)消費(fèi)層對(duì)于控制權(quán)的爭(zhēng)奪,就是一個(gè)很有意思的話題。這在 React 世界里也不例外。表面上看,我們當(dāng)然希望輪子掌控的事情越多越好:因?yàn)槌橄髮?..

    rubyshen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<