昨天提到狀態改變了,就會更新。
所以state如果有變化,就會觸發componentDidUpdate()
。
不過,在react中,還有一個很早就出現的Prop
,也能夠觸發更新。
(突然意識到,我的順序超級奇怪,怎麼會現在才在聊Props)
下面這一段很早就出現過的程式碼,第一行就有props
,透過props,我們可以很簡單的將資料綁定到element上。
而在function裡面,props
是沒有值的,不像是我們在constructor
裡面,會幫state設定值。
也就是說,props的值是從外部來的,而State的值則是從內部設定。
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <Welcome name="Sara" />;
root.render(element);
而在文件裡面,react粗體寫了一點:「所有的 React component 都必須像 Pure function 一般保護他的 props」
並說了,component不能修改自己的props,不可以!
所以這邊三顆星強調,component不可以自己修改自己的Props!
但不可以自己修改自己的Props,就代表不能改嗎?
不是!
就讓別人來改吧!
(等等再說)
那麼,同樣都傳遞資料,同樣都會觸發更新,Props和State有甚麼差別嗎?
setState
來改了嗎?那麼,我們明天就實際寫一段code,來傳遞修改區分一下State和Props吧!
明天!
明天見!