React 中 componentDidMount 中定義的全域性變數如何在方法種獲取?

時間 2021-05-08 03:41:42

1樓:

我理解的題意是、題主想要在元件內部的方法訪問變數。內部分方法可以是React 自己生命週期的方法,也可以是自己定義的方法。

根據題意,我按照變數型別區分,以下回答同時也是對資料管理開發的個人體會:

1.如果不加 let、 const 、var、那麼由於變數提公升,這個變數很有可能造成全域性汙染。

2.如果這個變數涉及UI變化、並且和其他元件沒有相互通訊、建議放在自己內部的state管理。

3.如果這個變數涉及UI變化、並且和其他元件有相互通訊、請用類似redux的資料管理

5、如果這個變數就在元件內部用、可以定義乙個const 、比如pm會要求某行文字只展示5項、你可以定義乙個const MAX_LEN = 5變數名全部大寫,放在 class上面方便訪問、這也是消除魔法字串的乙個方法

6、如果乙個變數只涉及邏輯層面、但不涉及UI邏輯變化,你可以掛在this上,但是請提供乙個有意義的作用域包裹它

2樓:Refector

class可以包含屬性和方法,用this沒毛病,state不就是乙個屬性嗎,引起ui變化的放到state裡,其他作為屬性

3樓:Ray Bao

常規做法不是先定義全域性state,然後在componentDidMount中給他賦值嗎

上邊說的可能不太準確

按照redux的思想是定義全域性store,然後在元件中觸發action

React中如何實現雙向資料繫結

Houfeng 可以試試 Mota,它能給 React 帶來類似 ng vue 的雙向繫結的能力 侯鋒 在 React 工程中利用 Mota 編寫物件導向的業務模型 import React from react class Hello extends Component handleInput e...

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

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

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

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