搜尋

首頁  >  問答  >  主體

僅限伺服器端渲染的`<server-only>`標籤

<p>我有一些程式碼只需要在客戶端渲染,因此我將它包裹在<code><client-only></code>標籤中。 </p> <p>然而,為了防止內容跳動,我嘗試只在伺服器端渲染元素,使用了以下程式碼:</p> <pre class="brush:php;toolbar:false;"><div v-if="$isServer" class="h-nonav bg-gray-500" /></pre> <p>這樣確實可以運作,但Vue會抱怨伺服器端的HTML與客戶端的不一致。 </p> <p>這樣做雖然有效,但聽起來有點hackish,並且會導致頁面渲染兩次:</p> <pre class="brush:php;toolbar:false;"><div v-if="ssr" class="h-nonav bg-gray-500" /> … data() { return { ssr: true } }, mounted() { this.ssr = false },</pre> <p>嘗試搜尋文檔,但沒有找到<code><server-only></code>標籤 :(</p>
P粉463811100P粉463811100485 天前437

全部回覆(1)我來回復

  • P粉724737511

    P粉7247375112023-08-30 13:02:38

    沒關係,使用v-show代替v-if修復了它:

    <div v-show="$isServer" />

    希望這能再次幫助我解決問題...

    回覆
    0
  • 取消回覆