十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
前言
上文講到通過同構(gòu)服務(wù)端渲染,可以直出html結(jié)構(gòu),雖然講解了樣式,圖片等靜態(tài)資源在服務(wù)端引入問題的解決方案,但是并沒有實際進行相關(guān)操作,這篇文章就講解一下如何讓樣式像html一樣直出。
PS: 直出,我的理解就是輸入url發(fā)起get請求訪問服務(wù)端,直接得到完整響應(yīng)結(jié)果,而不是同過ajax異步去獲取。
React 同構(gòu)的關(guān)鍵要素
完善的 Compponent 屬性及生命周期與客戶端的 render 時機是 React 同構(gòu)的關(guān)鍵。
DOM 的一致性
在前后端渲染相同的 Compponent,將輸出一致的 Dom 結(jié)構(gòu)。
不同的生命周期
在服務(wù)端上 Component 生命周期只會到 componentWillMount,客戶端則是完整的。
客戶端 render 時機
同構(gòu)時,服務(wù)端結(jié)合數(shù)據(jù)將 Component 渲染成完整的 HTML 字符串并將數(shù)據(jù)狀態(tài)返回給客戶端,客戶端會判斷是否可以直接使用或需要重新掛載。
以上便是 React 在同構(gòu)/服務(wù)端渲染的提供的基礎(chǔ)條件。在實際項目應(yīng)用中,還需要考慮其他邊角問題,例如服務(wù)器端沒有 window 對象,需要做不同處理等。下面將通過在手Q家校群上的具體實踐,分享一些同構(gòu)的 Tips 及優(yōu)化成果
加入樣式文件
目前我們的項目中還不存在任何樣式文件,所以需要先寫一個,就給組件App寫一個樣式文件吧。
安裝依賴
下面這些依賴都是后續(xù)會用到的,先安裝一下,下面會詳細(xì)講解每個依賴的作用。
復(fù)制代碼 代碼如下:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。