版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、React SSR的C端實踐C端服務(wù)端渲染和性能優(yōu)化方案狼叔和狼書的故事今天的前端目錄1、為什么要上SSR?2、從CSR到SSR演進(jìn)之路3、API與模塊拆分4、優(yōu)化實踐1、為什么要上SSR?背景:改版而起為什么要上SSR?運維 很差前端 事多API超多能做的更多,想做的更多前端痛點有限資源做事三大場景和六種組合SSRReactAPI1. React:現(xiàn)有中后臺開發(fā)模式2. Api: 只做Api聚合,內(nèi)置配置、緩存、rpc等3. Api + SSR:對于c端,將接口中間層和ssr放到一起4. Api + React:典型的BFF模式5. Api + SSR + React:全棧模式6. SSR
2、+ React:已有項目快速提升性能,尤其是對toB的項目非常有幫助前端能否承擔(dān)全部的端側(cè)應(yīng)用開發(fā)?能不能更簡單?既要也要還要無服務(wù) NoOPS函數(shù)粒度降低構(gòu)建復(fù)雜度擁抱變化今年重點工作收回npm包youku和tudou包名 今年會做些開源項目2、從CSR到SSR的演進(jìn)之路很古老的bigpipe分塊編碼(Transfer-Encoding: chunked)性能基礎(chǔ)2.1、Client-Side Rendering (CSR)所有邏輯,數(shù)據(jù)獲取,模板編譯,路由等都是在瀏覽器做的CSR最佳實踐和問題dynamic importsumi vs cra2.2、預(yù)渲染(Prerending)jsx編譯
3、成html模板+webpack stats布局SPA靜態(tài)頁面Lazy load(可選)Jekyll/Hexo/Gatsby/Next.js/Vuepress2.3、React SSR模板 + 數(shù)據(jù) = HTMLbundle.js布局CSRNode獲取數(shù)據(jù)Ajax獲取數(shù)據(jù)2.3.1、常規(guī)SSR布局,首屏渲染,seo加載bundle.js,hydrate綁定事件渲染方式1:renderToString渲染方式2:renderToNodeStream核心原理有render的地方大都可以用緩存前端資源獲取的數(shù)據(jù)編譯結(jié)果Next.js特性SSRStatic ExportingCSS-in-JS在scr/
4、pages/*.js都是遵守 文件名即path的做法。內(nèi) 部使用react-router封裝。在執(zhí)行過程中-loadGetInitialProps(), 獲得執(zhí)行g(shù)etInitialProps 靜態(tài)方法的返回值props- 將props傳給src/pages/*.js里標(biāo)準(zhǔn)react組件的propsUmi SSR方案1:頁面級別類似于Next模式loadGetInitialProps()執(zhí)行獲得執(zhí)行g(shù)etInitialProps 賦值給組件的props方案2:組件級別bigpipe方式組件寫法同nextloadGetInitialProps()執(zhí)行獲得執(zhí)行g(shù)etInitialProps 賦值給
5、組件的props2.3.2、擴(kuò)展SSR常規(guī)SSR,只處理了一個Stream通過bigpipe,組合多個StreamCSR 和 SSR能融合么?核心是請求約定為getInitialProps通過高階組件包一下同構(gòu)思考Faas和 SSR能融合么?Aws lambda完美兼容faas runtime構(gòu)建or直接用Serverless Server-Side Rendering當(dāng)前端更純粹視圖+Ajax=CSR API視圖+API(Node)=SSRAPI開發(fā)簡化 NoOPS面向組件開發(fā)CasF =as function頁面即服務(wù)頁面即函數(shù)3、API與模塊拆分你會的越多,解決問題越容易產(chǎn)品需要應(yīng)變,后
6、端不好變,前端更容易后端討厭(應(yīng)付)前端,幾種api都懶得根據(jù)ui/ue去定 制,能偷懶就偷懶一個頁面的Api非常多跨域(Jsonp?)Api返回的數(shù)據(jù)對前端不友好需求決定Api,Api不一定給的及時API問題常見做法:BFFSSR里API與模塊拆分每個模塊是一個APIlayout main others拆還是合?同步還是異步?jīng)]有對錯,只是看哪種場景更合適。最重要的是手里有選擇權(quán)頁面即服務(wù)函數(shù)即API1.可靠性:99.999999999%2.可用性:99.99%-無限存儲空間-按量付費4、優(yōu)化實踐QPS提升和性能排查Node沒問題Node + SSR怎么會有問題?編譯 vs緩存優(yōu)化過程性能調(diào)優(yōu)基本知識和工具火焰圖0 x非常簡單,已經(jīng)收入到/這個里面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年魚塘經(jīng)營承包合同
- 智能感知技術(shù)在數(shù)字化農(nóng)業(yè)中的應(yīng)用研究
- 《兒童感染性疾病》課件
- 2024小區(qū)廣告的合同范文
- 十四運頒獎禮服
- 新型環(huán)保電池制造工藝研究考核試卷
- 提高小學(xué)生綜合能力的培養(yǎng)策略考核試卷
- 2024專業(yè)律師勞動合同范本
- 智能辦公設(shè)備市場調(diào)研報告考核試卷
- 信息系統(tǒng)的數(shù)據(jù)隱私與保護(hù)措施方法分析考核試卷
- 初三化學(xué)-水的凈化省公開課獲獎?wù)n件說課比賽一等獎?wù)n件
- 2024-2030年中國財稅服務(wù)行業(yè)市場深度調(diào)研及發(fā)展前景與投資研究報告
- 第二次月考卷-2024-2025學(xué)年統(tǒng)編版語文六年級上冊
- 申論國家公務(wù)員考試試題與參考答案
- 亂扔垃圾的課件
- 2024-2030年中國安全校車市場發(fā)展分析及市場趨勢與投資方向研究報告
- 數(shù)字孿生水利項目建設(shè)可行性研究報告
- 北京市房山區(qū)2023-2024學(xué)年高二上學(xué)期期中地理試題 含解析
- 人教版六年級上冊數(shù)學(xué)課本課后習(xí)題答案
- 期刊編輯的學(xué)術(shù)期刊版權(quán)教育與培訓(xùn)考核試卷
- SolidWorks-2020項目教程全套課件配套課件完整版電子教案
評論
0/150
提交評論