2017-07-27 89 views
1

我正在使用hackernews Vuejs作爲模板。當我使用AsyncData在組件它不工作評論:SSR不工作

AsyncData

asyncData({ store }) { 
    return store.dispatch('LOCATIONS'); 
}, 

行動

LOCATIONS: ({ commit, state }) => { 
    return state.locationList.length ? Promise.resolve(state.locationList) : axios.get('http://localhost:3000/api/Locations').then(({ data }) => commit('SET_LOCATIONS', data)) 
} 

當我調用來自同一所創建()或beforeMounted()等。它正在工作並且狀態正在更新,但是當用作asyncData時,API甚至沒有被調用。

回答

0

這裏的答案從nuxtjs.org

因爲組件沒有一個asyncData方法,你不能直接 組件中獲取異步數據服務器端。爲了 避開有不限你有兩個基本的選擇:

請在安裝()掛鉤API調用和設置數據屬性時加載 。缺點:不適用於服務器端渲染。在頁面組件的asyncData()或fetch()方法中調用API ,並將數據作爲道具傳遞給子組件。服務器渲染將 工作正常。下行:頁面的asyncData()或fetch()可能會減少可讀性,因爲它正在爲其他組件加載數據