Vue: рдЧреИрд░-рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдЕрдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ - рдкреНрд░реЙрдкреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ "" рдЦрд╛рдХреЗ рдореЗрдВ

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

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

2.5.17

рдкреНрд░рдЬрдирди рд▓рд┐рдВрдХ

https://codepen.io/avertes/pen/LYYpNRe
https://jsfiddle.net/50wL7mdz/756973/

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

  1. рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдк рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
  2. рдШрдЯрдХ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рднреАрддрд░ рдкреНрд░реЛрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
  3. Vue рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдкреНрд░реЛрдк рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдХреИрд░реЗрдХреНрдЯрд░ рдпреБрдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдЙрдореНрдореАрдж рд╣реИ?

рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ рдЧреИрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

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

рдЖрдЙрдЯрдкреБрдЯ   рджрд┐рдЦрд╛рддрд╛ рд╣реИ


рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВрдиреЗ 3 рдорд╛рдорд▓реЗ рдмрдирд╛рдП рд╣реИрдВ

  • рдкрд╣рд▓рд╛ рдорд╛рдорд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐    
  • рджреВрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ UTF-8 рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ NON-BREAKING SPACE рдмрдЪ рдЧрдП рд╣реИрдВред
  • рдФрд░ рддреАрд╕рд░рд╛ рдЬрдм рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╣реА рд╕реВрдЪреА рдорд┐рд▓ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди document.querySelector('#test').title рд╕рд╛рде рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд HTMLElement рд╕реЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЪрд░рд┐рддреНрд░ рдмрдЪ рдирд╣реАрдВ рд░рд╣реЗ рд╣реИрдВред

рдиреЛрдЯ : рдиреЙрди-рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдХреИрд░реЗрдХреНрдЯрд░ рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реНрдкреЗрд╕ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП https://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдХрд┐ рдЪрд░рд┐рддреНрд░ рдХреИрд╕реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВред

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

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ,   - \xa0 рдХреЗ рд▓рд┐рдП JS рдПрд╕реНрдХреЗрдк рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдпрд╣рд╛рдБ рдкрд╛рдпрд╛

    public static noBreakingSpaces(str: string): string {
        return str.replace(' ', '\xa0');
    }

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп &nbsp s рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

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

рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рд╛ рд╣реИ - рдЬрд╣рд╛рдВ html рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдореЗрдВ (рдЕрдиреНрдп рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдФрд░ рд╢реВрдиреНрдп рдЪреМрдбрд╝рд╛рдИ рд╡рд░реНрдгреЛрдВ рд╕рд╣рд┐рдд) - рдХреЗрд╡рд▓   рдбрд┐рдХреЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ mathiasbynens рдореЗрдВ / рд╡рд╣   рд▓рд┐рдП рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ, рд╕рд┐рдорд┐рдХреЛрд▓рди рдХреЗ рдмрд┐рдирд╛ рдФрд░ рд╕рд┐рдорд┐рдХреЛрд▓рди рдХреЗ рд╕рд╛рде рдПрдХред

рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдПрдХ рд╢реЙрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдКрдкрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ   рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП mathiasbynens / he v1.1.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ jsfiddles рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛   рдХрд┐рд╕реА рднреА рдЕрд▓рдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреАред

рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╢реЙрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЦреБрд╢ рд╣реВрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ - рдПрдХ рдлрд┐рдХреНрд╕ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

Ive рдиреЗ рдореМрдХреЗ рдкрд░ × рд╕рд╛рде рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рдПрдХ рдШрдЯрдХ рдкреНрд░реЛрдк рдореЗрдВ × рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдШрдЯрдХ (v-html) рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдпрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рд╡рд╛рд╕реНрддрд╡рд┐рдХ x рд╡рд░реНрдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ SSR рдЬрд▓рдпреЛрдЬрди рдЬрдорд╛рдирдд рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг: https://jsfiddle.net/onbzk0m6/ (рдЪрд░рд┐рддреНрд░)

рд╣рд╛рдБ - рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ Vue parses html рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ @approached рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рд╣реИ
https://jsfiddle.net/onbzk0m6/3/

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ,   - \xa0 рдХреЗ рд▓рд┐рдП JS рдПрд╕реНрдХреЗрдк рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдпрд╣рд╛рдБ рдкрд╛рдпрд╛

    public static noBreakingSpaces(str: string): string {
        return str.replace(' ', '\xa0');
    }

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп &nbsp s рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ: html рдЗрдХрд╛рдИ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ "" рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдЬрдм рдирд░рдо рд╣рд╛рдЗрдлрд╝рди рдХреЗ рдмрдЬрд╛рдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "" рдФрд░ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдиред
рд╡реНрд░рдд реи.рем.резреж

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ:
рдЬрдм рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЧреИрд░-рдмреНрд░реЗрдХрд┐рдВрдЧ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднрд╛рдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд▓реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 'zzz'
var newName = program_name.replace(/\s/g,'zzz');

рдлрд┐рд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдХ рдореЗрдВ, рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕ рдкреНрд░реЙрдк рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЧрдгрдирд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЕрдирдкреЛрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЪрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИ

correctedProgramName(){ //this reverses the space-replacing we had to do in reporting-dashboard.js
        let correctedProgramName = this.program_name.replace(/zzz/g, ' ')
        return correctedProgramName
      }

@posva рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдорд┐рд▓ рдЧрдпрд╛ред

рдореЗрд░реЗ рдлрд┐рдХреНрд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, Vue рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ HTML рдЬреИрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛, рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣,

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдирд┐рд╡реЗрджрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

image

image

рдЬрд░реВрд░ @JuniorTour

рдпрд╣ рд╕рдорд╕реНрдпрд╛ https://github.com/vuejs/vue/issues/10485 рдФрд░ https://github.com/vuejs/vue/issues/11059 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ
рддреЛ рдпрд╣ рдореМрдЬреВрджрд╛ PRs рдкрд░ рднреА рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

seemsindie picture seemsindie  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bdedardel picture bdedardel  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Jokcy picture Jokcy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guan6 picture guan6  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paulpflug picture paulpflug  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ