iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
自我挑戰組

前端菜鳥的react初體驗系列 第 6

前端菜鳥的react初體驗 Day6-State與Prop

  • 分享至 

  • xImage
  •  

昨天提到狀態改變了,就會更新。
所以state如果有變化,就會觸發componentDidUpdate()
不過,在react中,還有一個很早就出現的Prop,也能夠觸發更新。

什麼是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

那麼,同樣都傳遞資料,同樣都會觸發更新,Props和State有甚麼差別嗎?

  1. Props從外部傳遞資料,State從內部管理
  2. Props不能透過該組件修改,State透過setState來修改。
    這裡指的是,不能透過內部修改。但是Props是從父層向下傳遞給子層,他不能被子層內部修改,但他如果在父層是個State呢?那不就可以透過setState來改了嗎?
    (但光看這一段,就覺得好麻煩喔)

那麼,我們明天就實際寫一段code,來傳遞修改區分一下State和Props吧!
明天!
明天見!


上一篇
前端菜鳥的react初體驗 Day5-State
下一篇
前端菜鳥的react初體驗 Day7-State與Prop(2)
系列文
前端菜鳥的react初體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言