第八天~
前面我們把 React Native
一些特色講解了一下,
也稍微的改動了畫面,
那在這過程中,多次的提到 component
,
那我們今天就來說一下 component
吧
在 React
, 它就是封裝了 一部分畫面的 結構
、樣式
、 邏輯
component
擁有以下特性:
在 component
內部的邏輯是封閉
的,無法直接的
從外部去干涉
這其實就像在玩積木一樣,我們可以把不同的 component 組合起來,放在同一個空間裡
const App = () => {
return (
<div>
<Header />
<Body />
<Footer />
</div>
);
};
當我們在建立 component
我們可以在內部制定相關的邏輯,
比如說,我希望建立一個 TouchMe component
,
它的邏輯是:按鈕
能夠在按下去的時候改變文字
const TouchMe = () => {
const [text, setText] = useState('按我!');
const onButtonClick = () => {
setText('按了!');
};
return <Button onClick={onButtonClick}>{text}</Button>;
};
如上,就是一個簡單的邏輯,被包裹在 TouchMe component
裡
component
是可以重複被使用的,並且是不會互相影響的,
例如,我們可以用 TouchMe component
去建立大量的 TouchMe Button
const App = () => {
return (
<>
<TouchMe />
<TouchMe />
<TouchMe />
<TouchMe />
</>
);
};
如上,每一個 TouchMe Button
都會有自己的邏輯,按下去也不會去影響到其他的
在 React 要如何建立 component 呢?
兩種方式:
以 es6 class
語法 繼承 React.Component
class App extends React.Component {
render() {
return <Text>Hello</Text>;
}
}
必須實作 render function 並且 return react element
就如同範例那樣,宣告一個 function ,最後 return react element
const App = () => {
return <Text>Hello</Text>;
};
它是在 react 裡最小的單位,
它並不是 component ,也不是 component 的 instance,也不是 virtual DOM,
就只是一個純物件(plain object)
, 描述關於此節點最終輸出
的畫面內容,
那裡面會包含兩個參數, type and props
它的建立有兩種:
React.createElement
來建立