91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React中怎么實現Props反模式

發布時間:2022-04-20 16:03:48 來源:億速云 閱讀:114 作者:iii 欄目:大數據

這篇文章主要介紹了React中怎么實現Props反模式的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇React中怎么實現Props反模式文章都會有所收獲,下面我們一起來看看吧。

之所以稱其為反模式是因為在getInitialState中使用Props生成state會導致重復“來源信任”問題。并且還猶豫getInitialState函數只是在組件被第一次渲染時調用。也就是說當該組件第二次再使用render渲染的時候,getInitialState函數不會再被調用。也就是說如果我們想通過第二次渲染改變Props的值從而改變State的值是不可能的。

下面我們來看一段代碼:

var MessageBox = React.createClass({
    getInitialState: function() {
        return {name: 'Mr. ' + this.props.name};
    },
    render: function() {
        return <div>{'Mr. '+this.state.name}</div>;
    }
});
ReactDOM.render(
    <MessageBox name="Rogers" />,
    document.getElementById('content')
);

對于上面的例子,可以說就是一種反模式的運用。如果我們想再次渲染組件MessageBox改變Props的name值。我們會發現div中的內容不變的,依然是 Mr. Rogers而不是Mr. Onmpw。

ReactDOM.render(
    <MessageBox name="Rogers" />,
    document.getElementById('content')
);
ReactDOM.render(
    <MessageBox name="Onmpw" />,
    document.getElementById('content')
);

所以說,對于上面的例子,div中直接使用this.props相對于this.state更好一些。

var MessageBox = React.createClass({
    render: function() {
        return <div>{'Mr. '+this.props.name}</div>;
    }
});
ReactDOM.render(
    <MessageBox name="Onmpw" />,
    document.getElementById('content')
);

這個例子的結果就是在頁面上輸出 Mr. Onmpw。

ReactDOM.render(
    <MessageBox name="Rogers" />,
    document.getElementById('content')
);

如果我們再次渲染,那就會就會是Mr. Rogers。

上面介紹的情況就是Props在getInitialState中使用的反模式。當然,如果我們能明確Props的用途,在getInitialState中使用也不會產生反模式的情況。比如,初始化一個值,該Prop的值不會改變。

var Counter = React.createClass({
    getInitialState: function() {
        return {count: this.props.initialCount};
    },
    handleClick: function() {
        this.setState({count: this.state.count + 1});
    },
    render: function() {
        return <div onClick={this.handleClick}>{this.state.count}</div>;
    }
});
ReactDOM.render(
    <Counter initialCount={7}/>,
    document.getElementById('content')
);

關于“React中怎么實現Props反模式”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“React中怎么實現Props反模式”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

斗六市| 思南县| 油尖旺区| 山阴县| 高安市| 无为县| 宁波市| 彰化县| 垦利县| 博乐市| 英山县| 蒲城县| 肥东县| 广东省| 古浪县| 浦城县| 桂阳县| 资讯| 石林| 宾川县| 延庆县| 安图县| 凤山县| 信宜市| 阳新县| 建始县| 平邑县| 沂南县| 视频| 武强县| 明星| 白银市| 江川县| 仙桃市| 阿尔山市| 托克逊县| 大竹县| 金山区| 武安市| 织金县| 门头沟区|