Vue: ssr рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдЦреИрд░рд╛рдд

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЬреВрди 2017  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

рд╕рдВрд╕реНрдХрд░рдг

2.3.4

рдкреНрд░рдЬрдирди

рдпрд╣рд╛рдБ F5 (рдкреБрдирдГ рд▓реЛрдб) рдХреБрдВрдЬреА рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
ssr_pre_tag_issue
(рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рд╡реАрдбрд┐рдпреЛ рд▓реВрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

vue-hackernews-2.0 рдбреЗрдореЛ рдХреЗ App.vue рдореЗрдВ <pre> рдЯреИрдЧ рдЬреЛрдбрд╝реЗрдВ:

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

рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ?

<pre> рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХрд╛ рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рд╣реИ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЦреИрд░рд╛рдд?, рдлрд┐рд░ <pre> рдЯреИрдЧ рд╕рд╛рдордЧреНрд░реА рдЯрд┐рдордЯрд┐рдорд╛ рд░рд╣реА рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@FranckFreiburger рдпрд╣ рдПрдХ рдмрдЧ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ https://www.w3.org/TR/html5/syntax.html#element -restrictions

рдкреНрд░реА рдФрд░ рдЯреЗрдХреНрд╕рдЯреЗрд░рд┐рдпрд╛ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯ рдЯреИрдЧ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдПрдХ рд╕рд┐рдВрдЧрд▓ рдиреНрдпреВрд▓рд╛рдЗрди рд▓рдЧрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рддрддреНрд╡ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ, рддреЛ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рддрд╛рд░ рджреЛ рдирдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреНрд░реА рдЯреИрдЧ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж first рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ vue html рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдзрдиреНрдпрд╡рд╛рдж @FranckFreiburger , рдореИрдВ рдореИрдХ рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рджреЛрдиреЛрдВ рдареАрдХ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ? рдФрд░ F5 key , рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП F5 рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рд╡рд┐рдВрдбреЛрдЬ 7, рдиреЛрдб v8.1.2, рдирд╡реАрдирддрдо Google рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред
vue-hackernews-2.0 рдбреЗрдореЛ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ App.vue рдХреЛ <pre> рдЯреИрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдлрд┐рд░ рдореИрдВ npm run dev рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░, рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ (рдФрд░ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдлрд┐рд░ рд╕реЗ рд╣реЛрддреА рд╣реИ)

рдЧреВрдЧрд▓ рджреЗрд╡ рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛,
рдЬрдм рдореИрдВ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрддрд╛ рд╣реВрдВ, рддреЛ рдорд╛рд░реНрдХрдЕрдк (рджреЗрд╡ рдЙрдкрдХрд░рдг рддрддреНрд╡ рдЯреИрдм рдореЗрдВ) рд╣реЛрддрд╛ рд╣реИ:

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

рдЬрдм рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ, рддреЛ рдорд╛рд░реНрдХрдЕрдк рдмрди рдЬрд╛рддрд╛ рд╣реИ:

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

рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рд╕реЗ рдбреЗрдЯрд╛ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ HTTP GET рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

рдзреНрдпрд╛рди рджреЗрдВ: рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ <div style="white-space:pre;"> рдХреЗ рдмрдЬрд╛рдп <pre>

рдзрдиреНрдпрд╡рд╛рдж, рд╕рдордЭ рдЧрдпрд╛ред рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@FranckFreiburger рдпрд╣ рдПрдХ рдмрдЧ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ https://www.w3.org/TR/html5/syntax.html#element -restrictions

рдкреНрд░реА рдФрд░ рдЯреЗрдХреНрд╕рдЯреЗрд░рд┐рдпрд╛ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯ рдЯреИрдЧ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдПрдХ рд╕рд┐рдВрдЧрд▓ рдиреНрдпреВрд▓рд╛рдЗрди рд▓рдЧрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рддрддреНрд╡ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ, рддреЛ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рддрд╛рд░ рджреЛ рдирдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреНрд░реА рдЯреИрдЧ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж first рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ vue html рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕