2.6.11
https://gist.github.com/aimozg/c073eea5a55062e3dcd8f887a8567807
Ejecute example.js en Node.
Pasos alternativos / explicación detallada:
whitespace: 'condense'
. (es el predeterminado para vue-cli).
entidad, por ejemplo, <p>a b</p>
entidad representada como carácter de espacio que no se separa; La salida de example.js debe contener
---- whitespace: condense
// code
NBSP FOUND
entidad se representa como espacio simple, la salida de example.js contiene
---- whitespace: condense
// code
NBSP NOT FOUND
Este código de compilador elimina el espacio en blanco:
if (!inPre && whitespaceOption === 'condense') {
// condense consecutive whitespaces into single space
text = text.replace(whitespaceRE, ' ')
}
y " "
s se reemplazan por "\xA0"
s con el decodificador de entidad anterior.
Los problemas relacionados son https://github.com/vuejs/vue/issues/10485
Sugerencia :
Regexp de espacios en blanco más estrecho, como /[ \t\r\n]+/g
.
¿No deberíamos tocar los espacios irrompibles en general? Eso es lo que personalmente esperaría si utilizo uno en mi plantilla. También solucionaría el problema que mencionaste
Configure el compilador de plantillas de Vue con espacios en blanco: 'condensar'. (es el predeterminado para vue-cli) .
Espera, estoy confundido. ¿Es condense
realmente el valor predeterminado? Veo varias cosas que afirman que preserve
es en realidad el valor predeterminado.
He estado luchando por descubrir por qué ninguno de mis espacios irrompibles funciona. Iba a intentar forzar la conservación, pero luego vi:
Evan dice que el valor predeterminado es preserve
https://github.com/vuejs/vue/issues/9208#issuecomment -450012518
Y documentos de opciones del compilador que se hacen eco de esa declaración https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#options
Ahora, después de ver a @aimozg decir que condense
es en realidad predeterminado, seguí adelante y configuré manualmente preserve
y ¡claro! ¡Todo ha vuelto a la normalidad!
¿Están mal los documentos o la implementación?
De cualquier manera, ¿por qué condensar eliminaría nbsp? Comportamiento muy inesperado. Estoy de acuerdo en que no deberían tocarse.
Los espacios en blanco se conservan en el núcleo de Vue para garantizar la compatibilidad con versiones anteriores, mientras que en las últimas versiones de Vue CLI lo configuramos en condense
de forma predeterminada.
lo mismo con la pestaña de escape 	
Hace muy difícil mostrar el código.
Esperando que esto se fusione ...
Solución alternativa actual
Utilizar
{{'\xa0'}}
en vez de
Comentario más útil
¿No deberíamos tocar los espacios irrompibles en general? Eso es lo que personalmente esperaría si utilizo uno en mi plantilla. También solucionaría el problema que mencionaste