搜尋

首頁  >  問答  >  主體

javascript - react中,互動和事件寫在哪裡?

初學react 思維還是像以前一樣用jquery的方式處理事件
假設我用index.js組織一些元件a.js b.js
我需要在某一個元件中實作ajax載入圖片
這事件該掛載在哪裡呢? compnentDidMount?
是不是所有的事件都要掛載在元件本身上?
元件生命週期函數是設計來掛載各種事件的嗎?
index.js裡除了render之外不寫任何事件?

给我你的怀抱给我你的怀抱2752 天前595

全部回覆(4)我來回復

  • 大家讲道理

    大家讲道理2017-05-19 10:36:33

    生命週期顧名思義是給你在元件各種階段做一些事情,呼叫ajax是其中一種,但不是唯一一種。

    在不引入Redux的前提下,盡可能不要在子元件內呼叫ajax,盡可能放在一個最高的父元件。

    render是渲染函數,事件處理函數是掛載在jsx上。

    你也可能等元件渲染之後用原生js為元件新增事件,這也沒問題。

    回覆
    0
  • 为情所困

    为情所困2017-05-19 10:36:33

    如果只是元件內部互動的事件,那麼你ajax載入事件就寫到compnentDidMount元件渲染完成裡就行了。

    回覆
    0
  • 迷茫

    迷茫2017-05-19 10:36:33

    react 中的render是自己判斷來重新渲染的,只要你的state中值發生了變化,它自己會重新判斷那些地方需要更新.
    交互的話,你正常寫onClick 的事件等都可以哇,要記得寫的時候注意this指向問題,推薦箭頭函數來寫.
    另,如果有些函數為了避免重複綁定,可以在組件的構造函數中統一進行綁定.

    回覆
    0
  • 阿神

    阿神2017-05-19 10:36:33

    我需要在某一個元件中實作ajax載入圖片
    這個事件該掛載在哪裡呢? compnentDidMount?
    答:看你怎麼加載,如果透過事件加載圖片,那麼直接在組件上綁定事件,發請求,用state控制組件是否展示,如果頁面初始化的時候加載,那麼直接在componentDidMount發請求就好了。
    組件生命週期函數是設計來掛載各種事件的嗎?
    答:元件生命週期不同的階段會觸發不一樣的方法,可能是發請求,可能是改變state,不一定的~
    index.js裡除了render之外不寫任何事件?
    答:index是入口文件阿~

    回覆
    0
  • 取消回覆