初學react 思維還是像以前一樣用jquery的方式處理事件
假設我用index.js組織一些元件a.js b.js
我需要在某一個元件中實作ajax載入圖片
這事件該掛載在哪裡呢? compnentDidMount?
是不是所有的事件都要掛載在元件本身上?
元件生命週期函數是設計來掛載各種事件的嗎?
index.js裡除了render之外不寫任何事件?
大家讲道理2017-05-19 10:36:33
生命週期顧名思義是給你在元件各種階段做一些事情,呼叫ajax是其中一種,但不是唯一一種。
在不引入Redux的前提下,盡可能不要在子元件內呼叫ajax,盡可能放在一個最高的父元件。
render是渲染函數,事件處理函數是掛載在jsx上。
你也可能等元件渲染之後用原生js為元件新增事件,這也沒問題。
迷茫2017-05-19 10:36:33
react 中的render是自己判斷來重新渲染的,只要你的state中值發生了變化,它自己會重新判斷那些地方需要更新.
交互的話,你正常寫onClick 的事件等都可以哇,要記得寫的時候注意this指向問題,推薦箭頭函數來寫.
另,如果有些函數為了避免重複綁定,可以在組件的構造函數中統一進行綁定.
阿神2017-05-19 10:36:33
我需要在某一個元件中實作ajax載入圖片
這個事件該掛載在哪裡呢? compnentDidMount?
答:看你怎麼加載,如果透過事件加載圖片,那麼直接在組件上綁定事件,發請求,用state控制組件是否展示,如果頁面初始化的時候加載,那麼直接在componentDidMount發請求就好了。
組件生命週期函數是設計來掛載各種事件的嗎?
答:元件生命週期不同的階段會觸發不一樣的方法,可能是發請求,可能是改變state,不一定的~
index.js裡除了render之外不寫任何事件?
答:index是入口文件阿~