P粉1741519132023-08-16 18:17:53
在標記中,有原生語法(有很多變體)可以用來等待承諾:
{#await loadLang() then lang} <span>{lang.someValue}</span> {/await}
另一種選擇是在頂層範圍聲明一個變量,並在資料載入後設定它。當然,它首先會是未定義的,或者是您初始化的其他任何值。然後通常會與{#if}
結合使用:
let lang; loadLang().then(l => lang = l);
{#if lang} <span>{lang.someValue}</span> {/if}
在browser
上有一個守衛並不好。您可能希望將資料載入移到 layout
載入函數中,以便將其作為data
屬性傳遞,並且可以在SSR和CSR期間使用,並且對使用佈局的每個頁面都可使用。
不要使用document.documentElement.lang
,而是在伺服器上使用請求的Accept-Language
頭。
在頁面提供/渲染之前載入資料還可以防止潛在的佈局變化或載入指示器。