簡單易懂的React魔法(05):什么是 React Props?

當你使用react組件時你可以給它輸入數據。這些數據被稱為props。它們是只讀的,聲明了組件最基礎的狀態。在JSX中,props就像HTML屬性。為了證明這一點,我們來修改我們的應用以至于Detail組件可以從別的地方接收數據。
修改index.js 包含以下代碼:
src/index.js

import React from 'react';
import ReactDOM from 'react-dom';

import Detail from './pages/Detail';

ReactDOM.render(
    <Detail message="This is coming from props!" />,
    document.getElementById('app')
);

注意新的 message="This is coming from props!"給Detail傳入了參數。在Detail.js 我們需要接受這個參數 message取代原來手寫的值:

src/pages/Detail.js

import React from 'react';

class Detail extends React.Component {
    render() {
        return <p>{this.props.message}</p>;
    }
}

export default Detail;

注意我直接將this.props.message寫在大括號里,這樣表示JSX里面的是js代碼而不是字符串。當應用被編譯時這部分會當作代碼執行,以便我們不需要拼接字符串。回到瀏覽器,屏幕上的字符串應該會自動更新。

在我們繼續之前,我想進一步說明props不是嚴格只讀的,你非要賦值也可以。不過最好還是別這么做,你應該確保props對子組件(Detail.js)是只讀的,只在創建這些props的組件(index.js)里改變他們。也就是說,如果你創建了一個組件,它接收了props,你可以改變這些props,但是你不應該去改變這個props。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原教程內容詳見精益 React 學習指南,這只是我在學習過程中的一些閱讀筆記,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,860評論 1 18
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內容,還有我對于 Vue 1.0 印象不深的內容。關于...
    云之外閱讀 5,079評論 0 29
  • 現在 render() 里的代碼是這樣的:src/pages/Detail.js 在大括號里的ES6代碼將會在編譯...
    誅諾閱讀 2,682評論 0 0
  • 最近看了一本關于學習方法論的書,強調了記筆記和堅持的重要性。這幾天也剛好在學習React,所以我打算每天堅持一篇R...
    gaoer1938閱讀 1,719評論 0 5
  • 每個人每天都與不同的人打交道,每天都在攪盡腦汁的說話,好累啊!就像女兒老說的那句:累死本寶寶啦!哈哈哈。今天...
    婳雨閱讀 216評論 0 1