Vue: κ΅¬λΆ„λ˜μ§€ μ•ŠλŠ” 곡백은 λ‹€λ₯Έ λ¬Έμžμ™€ λ‹€λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€. μ†Œν’ˆμ„ 톡해 전달 될 λ•Œ ν…œν”Œλ¦Ώμ— ""을 좜λ ₯ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2018λ…„ 10μ›” 04일  Β·  11μ½”λ©˜νŠΈ  Β·  좜처: vuejs/vue

버전

2.5.17

볡제 링크

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

μž¬ν˜„ 단계

  1. λ¬Έμžμ—΄ μ†Œν’ˆμ„ λ°›μ•„λ“€μ΄λŠ” μƒˆ ꡬ성 μš”μ†Œλ₯Ό λ§Œλ“­λ‹ˆλ‹€.
  2. ꡬ성 μš”μ†Œμ˜ ν…œν”Œλ¦Ώ 내에 μ†Œν’ˆμ„ ν‘œμ‹œν•©λ‹ˆλ‹€.
  3. Vue μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜κ³  prop에 λŒ€ν•΄ κ΅¬λΆ„λ˜μ§€ μ•ŠλŠ” 곡백 λ¬Έμžκ°€ 포함 된 λ¬Έμžμ—΄μ„ μ „λ‹¬ν•©λ‹ˆλ‹€.

무엇을 κΈ°λŒ€ν•©λ‹ˆκΉŒ?

좜λ ₯μ—λŠ” μ€‘λ‹¨λ˜μ§€ μ•ŠλŠ” 곡백이 ν¬ν•¨λ˜μ–΄μ•Όν•©λ‹ˆλ‹€.

μ‹€μ œλ‘œ 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

좜λ ₯에  


제곡된 μ˜ˆμ—μ„œ 3 개의 μΌ€μ΄μŠ€λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

  • 첫 번째 κ²½μš°λŠ”   κ°€   둜 λ°”λ€ŒλŠ” κ²ƒμž…λ‹ˆλ‹€.
  • 두 번째 κ²½μš°λŠ” κΈ΄ UTF-8 문자 λͺ©λ‘μ—μ„œ NON-BREAKING SPACE 만 μ΄μŠ€μΌ€μ΄ν”„λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
  • μ„Έ 번째둜 λ™μΌν•œ 문자 λͺ©λ‘μ„ κ°€μ Έ μ˜€μ§€λ§Œ document.querySelector('#test').title 둜 일반 HTMLElement μ—μ„œ κ²€μƒ‰ν•˜λ©΄ λ¬Έμžκ°€ μ΄μŠ€μΌ€μ΄ν”„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ°Έκ³  : 쀄 λ°”κΏˆν•˜μ§€ μ•ŠλŠ” 곡백 문자λ₯Ό λ³΅μ‚¬ν•˜λ©΄ 클립 λ³΄λ“œμ—μ„œ 일반 곡백으둜 λ°”λ€” 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ https://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods λ₯Ό μ‚¬μš©ν•˜μ—¬ 문자λ₯Ό μ‚½μž…ν•˜λŠ” 방법을 ν™•μΈν•˜μ‹­μ‹œμ˜€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

ν•΄κ²° λ°©λ²•μœΌλ‘œ   - \xa0 에 λŒ€ν•œ JS μ΄μŠ€μΌ€μ΄ν”„ μ½”λ“œλ₯Ό λ„£μœΌμ‹­μ‹œμ˜€.

μ—¬κΈ° μ—μ„œ 발견, nonbreakinspacification κΈ°λŠ₯μ—μ„œ λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€.

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

이 ν•¨μˆ˜μ— μ˜ν•΄ λ°˜ν™˜ 된 λ¬Έμžμ—΄μ€ 곡백 λŒ€μ‹  &nbsp 으둜 λ Œλ”λ§λ©λ‹ˆλ‹€.

λͺ¨λ“  11 λŒ“κΈ€

μƒˆλ‘œμš΄ 예λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. html μ—”ν„°ν‹° λͺ©λ‘ (λ‹€λ₯Έ 곡백 및 0 λ„ˆλΉ„ 문자 포함)μ—μ„œ   λ””μ½”λ”©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ˜ν•œ λ‚˜λŠ” mathiasbynens / he μ—μ„œ   λŒ€ν•œ 두 ν•­λͺ©μ΄ μ‹œλ―Έ 콜둠 μ΄μ—†λŠ” 것과

μ–΄λ‘  μ†μ—μ„œ μ΄¬μ˜ν•  μˆ˜λ„ μžˆμ§€λ§Œ μœ„μ˜ 결과에 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆκΉŒ?

  μ™€μ˜ 뢈일치λ₯Ό μ°ΎκΈ° μœ„ν•΄ mathiasbynens / he v1.1.1을 μ‚¬μš©ν•΄

  κ°€ λ‹€λ₯΄κ²Œ λ°˜μ‘ν•˜λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ 이전 jsfiddlesλ₯Ό 볡제 ν•΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

λˆ„κ΅¬λ“ μ§€μ΄ 였λ₯˜λ₯Ό 찾을 μˆ˜μžˆλŠ” μœ„μΉ˜μ— λŒ€ν•œ 지침을 제곡 ν•  수 μžˆλ‹€λ©΄ 기꺼이 μ‹œλ„ν•΄ λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œ λ¬Έμ œμ— λŒ€ν•œ 닡변을 λŒ€λ‹¨νžˆ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

λ‚˜μ—κ²Œ λ²„κ·Έμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. μˆ˜μ •μ΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

가끔 × μ—μ„œ 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. ꡬ성 μš”μ†Œ μ†Œν’ˆμ˜ 기본값이 × μ΄κ³  ꡬ성 μš”μ†Œ (v-html)μ—μ„œ λ Œλ”λ§λ©λ‹ˆλ‹€. λ Œλ”λ§ ν•  λ•Œ μ‹€μ œ x λ¬Έμžκ°€ ν‘œμ‹œλ˜κ³  SSR μˆ˜ν™” λ³΄μ„κΈˆμ΄

λ‹€λ₯Έ 예 : https://jsfiddle.net/onbzk0m6/ (character)

예-Vueκ°€ 일반적으둜 html 속성을 ꡬ문 λΆ„μ„ν•˜λŠ” 방식과 κ΄€λ ¨μ΄μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@approached 예제λ₯Ό 기반으둜 λΉ„μŠ·ν•œ 예제λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
https://jsfiddle.net/onbzk0m6/3/

ν•΄κ²° λ°©λ²•μœΌλ‘œ   - \xa0 에 λŒ€ν•œ JS μ΄μŠ€μΌ€μ΄ν”„ μ½”λ“œλ₯Ό λ„£μœΌμ‹­μ‹œμ˜€.

μ—¬κΈ° μ—μ„œ 발견, nonbreakinspacification κΈ°λŠ₯μ—μ„œ λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€.

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

이 ν•¨μˆ˜μ— μ˜ν•΄ λ°˜ν™˜ 된 λ¬Έμžμ—΄μ€ 곡백 λŒ€μ‹  &nbsp 으둜 λ Œλ”λ§λ©λ‹ˆλ‹€.

λ™μΌν•œ 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. html μ—”ν‹°ν‹°λŠ” μ†Œν”„νŠΈ ν•˜μ΄ν”ˆ λŒ€μ‹  ν…œν”Œλ¦Ώμ—μ„œ μ‚¬μš©ν•  λ•Œ ν…μŠ€νŠΈλ‘œ ""κ°€λ©λ‹ˆλ‹€. ""및 기타에 λŒ€ν•΄μ„œλ„ λ™μΌν•©λ‹ˆλ‹€.
Vue 2.6.10

이에 λŒ€ν•œ ν•΄κ²° 방법을 μ°Ύκ³ μžˆλŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ :
쀄 λ°”κΏˆν•˜μ§€ μ•ŠλŠ” κ³΅λ°±μ΄μžˆλŠ” λ¬Έμžμ—΄μ„ μ†Œν’ˆμœΌλ‘œ 전달할 λ•Œ 곡백을 λ¬Έμžμ—΄μ˜ 일뢀가 μ•„λ‹Œ 문자둜 λ°”κΏ¨μŠ΅λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” '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κ³Ό λ™μΌν•©λ‹ˆλ‹€.

이 문제λ₯Ό ν™•μΈν•˜κ³  Pull Requestλ₯Ό ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

image

image

물둠 이죠 @JuniorTour

이 λ¬Έμ œλŠ” https://github.com/vuejs/vue/issues/10485 및 https://github.com/vuejs/vue/issues/11059 와 κ΄€λ ¨μ΄μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
λ”°λΌμ„œ κΈ°μ‘΄ PR도 μ‚΄νŽ΄λ³Ό κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰