Vue: ssr unerwartete Flüssigkeitszufuhr mit

Erstellt am 28. Juni 2017  ·  4Kommentare  ·  Quelle: vuejs/vue

Ausführung

2.3.4

Reproduktion

Folgendes passiert mit der Taste F5 (Neuladen):
ssr_pre_tag_issue
(Es passiert nur einmal, das Video wird geloopt)

Schritte zum Reproduzieren

Fügen Sie in App.vue der vue-hackernews-2.0-Demo ein <pre> -Tag hinzu:

<template>
  <div id="app">
    <header class="header">
    <pre style="background-color: #aaa">
foobar
    </pre>
      <nav class="inner">

Was wird erwartet?

clientseitig und serverseitig haben die gleiche Version für das <pre> Tag

Was passiert eigentlich?

client- und serverseitige Versionen sind nicht gleich, dann Bailout ?, dann flackert der Inhalt des <pre> Tags

bug

Hilfreichster Kommentar

@FranckFreiburger Dies scheint ein Fehler zu sein. Gemäß der Spezifikation https://www.w3.org/TR/html5/syntax.html#element -restrictions

Ein einzelner Zeilenumbruch kann unmittelbar nach dem Start-Tag von pre- und textarea-Elementen platziert werden. Soll der Inhalt des Elements mit einem Zeilenumbruch beginnen, müssen daher vom Autor zwei aufeinanderfolgende Zeilenumbrüche eingefügt werden.

Der Zeilenumbruch first direkt nach dem pre-Tag wird ignoriert, der vue-html-Compiler hingegen nicht.

Ich werde versuchen, es zu beheben.

Alle 4 Kommentare

Danke @FranckFreiburger , ich versuche das Problem auf Mac und Windows zu reproduzieren, beides ok. Bitte geben Sie weitere Informationen an. Und für F5 key , was meinst du damit, F5 um die Seite neu zu laden?

Windows 7, Knoten v8.1.2, getestet mit dem neuesten Google Chrome und Firefox.
Nach dem Klonen der vue-hackernews-2.0-Demo habe ich gerade das App.vue <pre> Tag geändert, um das
Dann führe ich npm run dev , und beim ersten Laden der Seite tritt das Problem auf (und das Problem tritt beim Neuladen der Seite erneut auf).

Mithilfe von Google-Entwicklungstools,
Wenn ich die Skriptausführung kurz vor dem Problem anhalte, lautet das Markup (auf der Registerkarte Elemente der Entwicklungstools):

<pre style="background-color:#aaa;">foobar
        </pre>

Wenn ich die Skriptausführung fortsetze, wird das Markup zu:

<pre style="background-color:#aaa;">
foobar
        </pre>

Die Daten von der Registerkarte Netzwerk scheinen korrekt zu sein, die anfängliche HTTP-GET-Anfrage enthält:

<pre style="background-color:#aaa;">
foobar
        </pre>

Hinweis: Das Problem tritt nicht bei <div style="white-space:pre;"> anstelle von <pre>

Danke, habs verstanden. Ich versuche es zu untersuchen.

@FranckFreiburger Dies scheint ein Fehler zu sein. Gemäß der Spezifikation https://www.w3.org/TR/html5/syntax.html#element -restrictions

Ein einzelner Zeilenumbruch kann unmittelbar nach dem Start-Tag von pre- und textarea-Elementen platziert werden. Soll der Inhalt des Elements mit einem Zeilenumbruch beginnen, müssen daher vom Autor zwei aufeinanderfolgende Zeilenumbrüche eingefügt werden.

Der Zeilenumbruch first direkt nach dem pre-Tag wird ignoriert, der vue-html-Compiler hingegen nicht.

Ich werde versuchen, es zu beheben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen