react 可以通過 object 的值比較來更新元件嗎?

時間 2021-06-06 14:48:10

1樓:江湖術士

這個肯定是可以的啊,比較簡單直接的方案是:

import

from

"react"

;export

function

useData

>(data:T

):T,

set(

target

,key

,value));

return

true;}

});return

proxy;}

上面的寫法只是讓它更像Vue而已(proxy object,但是沒有統一的佇列管理)。

你也可以封裝Rxjs讓它事件驅動起來,更像Angular,只需要在生命乙個StateHook,subscribe中setState就可以(observable,但是沒有把事件用zone管理起來)。

當然,官方推薦,你在需要修改Object的時候,應該採用useReducer的redux模式。

React比Vue和Angular都要更底層一些,即官方所說,React本身就是View。

存粹一點就不要出現物件,因為物件是可變資料結構,採用immutable宣告state,會體驗到更存粹的函式式程式設計。

import

from

'immutable'

const

[state

,setState]=

useState

(fromJs

());

setState

(state

.setIn

('name'

,'newName'

));React的風格是「不要有變數」的風格(函式式),如果出現Object,要麼用Redux或者immutable保證不可變,要麼拆開Object,用簡單資料變數+useEffect管理。

否則開發過程中會出現讓你迷惑的bug。

react中你們都是通過什麼方式實現動畫的?

提供乙個學習資源 http www.React 動畫效果實現。傳統 web 動畫的兩種方式 1.CSS3 2.JS 使用 setInterval setTimeout requestAnimationFrame 不斷地修改 DOM 的 style 屬性產生動畫效果 對應到 react 中 1.CSS...

如何可以將react中的state用redux正確地託管

小郭嘉 對於react redux專案中的state,不是所有的state都必須要交給redux託管吧?不是,對於元件自身短暫的且不影響全域性的state交由元件自身state管理就好。全域性的state,元件間需要通訊的資料交由redux管理。參考Redux作者的回答 Question How t...

是否存在vue很難實現,但react可以相對簡單實現的功能,是哪類功能呢?

CharTen 大體上react能實現的vue都能實現。如果說react實現簡單但vue實現較難的,有兩個 Fragment的功能,vue元件,有且只能有乙個根元素。而react元件可以將根元素設定為fragment,渲染到頁面就可以一次性渲染多個元素上去。而vue直到3.0才實現相同的功能,2.沒...