Web3js

我應該為 dapp 使用伺服器端渲染(Next.js)嗎?

  • June 21, 2021

最近我一直在研究很多關於 dapps 的東西,現在正在研究一個有點複雜的東西。所以我想問的是哪個更適合 dapp ?SSR 還是企業社會責任?我在幾個地方讀到過,如果瀏覽器上沒有安裝 metamask,我們應該使用 SSR,我們可以使用伺服器上的 infura 之類的東西從伺服器上的乙太坊區塊鏈獲取資訊(當然我們仍然不能簽署任何東西)。

一個簡單的設置就像下面連結中的程式碼

web3 設置範例

如您所見,我正在檢查瀏覽器中是否存在 web3 並使用注入的 web3,但如果不存在(否則),我正在使用 infura。

我的問題是我們不能只使用 CSR,因為即使頁面在客戶端呈現,它也會起作用。如果 web3 不退出,它將簡單地使用 infura,我們可以使用 componentDidMount 生命週期方法從乙太坊區塊鏈獲取數據。如有需要請詢問詳情

問候

Next.js使用乙太坊應用程序(dapps)背後的重要理念是伺服器端渲染。您也可以使用 CSR,但這不利於使用者體驗。

假設您正在建構一個投票應用程序,並且候選人儲存在區塊鏈上。要填充 html 文件,應從區塊鏈中獲取數據。正如你所說,我們可以獲取 CSR 上的數據並且可以使用componentDidMount函式。首先,這將需要更多時間。其次,如果使用者沒有安裝 metamask,使用者將看到空白的 Html 文件,並且永遠不會對應用程序產生任何興趣,甚至不會嘗試安裝 metamask。

另一方面,通過使用next.jsnext.js伺服器執行 react 應用程序並對區塊鏈進行必要的呼叫以獲取數據並填充 html 文件,然後將填充的 html 文件與該數據一起發送到客戶端,稍後它還會發送所有 JS 程式碼處理瀏覽器上的使用者互動。

所以建議使用 SSR,因為我們應該向我們的使用者展示一些東西,無論他們是否已經安裝了 metamask。

希望它有助於清晰的理解。

引用自:https://ethereum.stackexchange.com/questions/68457