[React] 組件 & Props(3)

函數(shù)定義/類定義組件

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

上面兩個組件在React中是相同的。
只是第一種是JS函數(shù)定義的組件,第二種是ES6 Class定義的組件雕擂。

組件渲染

React元素可以是DOM標(biāo)簽踊东,也可以是用戶自定義的組件。

const element = <Welcome name="Sara" />;

當(dāng)React遇到的元素是用戶自定義的組件胞四,它會將JSX屬性作為單個對象傳遞給該組件恬汁,這個對象稱之為“props”。
如上圖會將{name: 'Sara'}作為props的值入Welcome組件內(nèi)部辜伟。

警告:
組件名稱必須以大寫字母開頭氓侧。
例如,<div /> 表示一個DOM標(biāo)簽导狡,但 <Welcome /> 表示一個組件约巷,并且在使用該組件時你必須定義或引入它。

組合組件

組件可以在它的輸出中引用其它組件旱捧,這就可以讓我們用同一組件來抽象出任意層次的細節(jié)独郎。
多考慮組件的可復(fù)用性,視情況細化組件粒度枚赡。

例如氓癌,我們可以創(chuàng)建一個 App 組件,用來多次渲染 Welcome 組件:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

function App() {
  return (
    <div>
      <Welcome name="Sara" />
      <Welcome name="Cahal" />
      <Welcome name="Edite" />
    </div>
  );
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

警告:
組件的返回值只能有一個根元素贫橙。這也是我們要用一個<div>來包裹所有<Welcome />元素的原因贪婉。

Props的只讀性

React是非常靈活的,但它也有一個嚴格的規(guī)則:

無論是使用 函數(shù) 或是 來聲明一個組件卢肃,它決不能修改它自己的props疲迂!

組件定義及引入步驟

  1. 首先創(chuàng)建一個Hello.js文件(在React中,約定成俗的習(xí)慣是組件命名首字母大寫)
import React from 'react';
const hello = () => {
  return <p>Hello莫湘,React鬼譬!</p>
};
export default hello;
  1. 在需要引入的地方import,如果我們最常見的App.js文件里逊脯。
import Hello from './Hello/Hello';

ReactDOM.render(<Hello/>, document.getElementById('root'));

效果如圖:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末优质,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子军洼,更是在濱河造成了極大的恐慌巩螃,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匕争,死亡現(xiàn)場離奇詭異避乏,居然都是意外死亡,警方通過查閱死者的電腦和手機甘桑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門拍皮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歹叮,“玉大人,你說我怎么就攤上這事铆帽∨毓ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵爹橱,是天一觀的道長萨螺。 經(jīng)常有香客問我,道長愧驱,這世上最難降的妖魔是什么慰技? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮组砚,結(jié)果婚禮上吻商,老公的妹妹穿的比我還像新娘。我一直安慰自己糟红,他們只是感情好艾帐,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著改化,像睡著了一般掩蛤。 火紅的嫁衣襯著肌膚如雪枉昏。 梳的紋絲不亂的頭發(fā)上陈肛,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音兄裂,去河邊找鬼句旱。 笑死,一個胖子當(dāng)著我的面吹牛晰奖,可吹牛的內(nèi)容都是我干的谈撒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼匾南,長吁一口氣:“原來是場噩夢啊……” “哼啃匿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛆楞,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤溯乒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后豹爹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裆悄,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年臂聋,在試婚紗的時候發(fā)現(xiàn)自己被綠了光稼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片或南。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖艾君,靈堂內(nèi)的尸體忽然破棺而出采够,到底是詐尸還是另有隱情,我是刑警寧澤腻贰,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布吁恍,位于F島的核電站,受9級特大地震影響播演,放射性物質(zhì)發(fā)生泄漏冀瓦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一写烤、第九天 我趴在偏房一處隱蔽的房頂上張望翼闽。 院中可真熱鬧,春花似錦洲炊、人聲如沸感局。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽询微。三九已至,卻和暖如春狂巢,著一層夾襖步出監(jiān)牢的瞬間撑毛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工唧领, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留藻雌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓斩个,卻偏偏與公主長得像胯杭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子受啥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355