2017-08-31 53 views
0

比方說,我有一個應用程序:獲取react/redux應用程序的初始數據的最佳做法是什麼?

  1. 用戶可以登錄/註銷;
  2. 其他與使用過的數據不相關的任何其他信息。例如,城市列表。

在服務器html渲染應用程序中,我從db中獲取城市,然後用這些城市的選擇字段形成html頁面。在陣營我有一個選擇:

  1. componentWillMount方法抓取城市或
  2. 因爲這些城市不能改變,最有可能會在其他頁面使用,放列表了Redux商店。

在我看來,我要實現返回所有初始數據的一些API方法,但它看上去很髒我。

所以,問題 - 這種情況下的最佳做法是什麼?

回答

0

爲了獲得最佳性能,您只需在需要時提取數據,否則會耗盡內存和帶寬。如果您確定用戶將始終需要該列表,那麼可以預先加載它。無需在單個API方法中返回所有初始數據 - 您可以在應用程序引導過程中創建一個部分,引發一堆API調用,等待所有結果,然後使用這些初始值創建redux存儲。

等待通話完成的問題是,您的應用直到全部完成纔會啓動,因此根據數據大小,這會造成顯着的性能下降。很可能會更容易從一個空的redux商店開始,但是在引導時引發一系列請求,當它們返回時會分派操作。例如。

function bootstrap() { 
    const store = createStore(); 
    fetchCities().then(cities => store.dispatch({ 
     type: "UPDATE_CITIES", 
     cities 
    }); 
    fetchCountries().then(countries => store.dispatch({ 
     type: "UPDATE_COUNTRIES", 
     countries 
    }); 

    ReactDOM.render(<Provider store={ store }><MyApp /></Provider>); 
} 

這可以讓您觸發數據加載,但是您的應用可以在等待數據時開始渲染。

相關問題