2.6.11
https://gist.github.com/aimozg/c073eea5a55062e3dcd8f887a8567807
Execute example.js no Node.
Etapas alternativas / explicação detalhada:
whitespace: 'condense'
. (é o padrão para vue-cli).
entidade, por exemplo, <p>a b</p>
entidade processada como caractere de espaço sem quebra; A saída de example.js deve conter
---- whitespace: condense
// code
NBSP FOUND
entity é processado como espaço simples, a saída example.js contém
---- whitespace: condense
// code
NBSP NOT FOUND
O espaço em branco é eliminado por este código do compilador:
if (!inPre && whitespaceOption === 'condense') {
// condense consecutive whitespaces into single space
text = text.replace(whitespaceRE, ' ')
}
e " "
s são substituídos por "\xA0"
s com o decodificador de entidade anterior.
Os problemas relacionados são https://github.com/vuejs/vue/issues/10485
Sugestão :
Expressão regular RE de espaços em branco mais estreitos, como /[ \t\r\n]+/g
.
Não deveríamos tocar em espaços inquebráveis em geral? Isso é o que eu esperaria pessoalmente se usar um em meu modelo. Também resolveria o problema que você mencionou
Configure o compilador de modelo Vue com espaço em branco: 'condensar'. (é o padrão para vue-cli) .
Espere, estou confuso. condense
realmente o padrão? Estou vendo várias coisas que afirmam que preserve
é na verdade o padrão.
Tenho lutado para descobrir por que nenhum dos meus espaços inquebráveis está funcionando. Eu ia tentar forçar a preservação, mas então vi:
Evan dizendo que o padrão é preserve
https://github.com/vuejs/vue/issues/9208#issuecomment -450012518
E os documentos de opção do compilador que ecoam essa declaração https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#options
Agora, depois de ver @aimozg dizer que condense
é realmente o padrão, fui em frente e configurei manualmente preserve
e com certeza! Tudo voltou ao normal!
Os documentos / implementação estão errados?
De qualquer maneira, por que condensar eliminaria nbsp? Comportamento muito inesperado. Eu concordo que eles não devem ser tocados.
Os espaços em branco são preservados no núcleo do Vue para garantir a compatibilidade com versões anteriores, enquanto nas versões mais recentes do Vue CLI configuramos isso para condense
por padrão.
o mesmo com a guia de escape 	
Torna muito difícil exibir o código
Esperando que isso seja mesclado ...
Solução alternativa atual
Usar
{{'\xa0'}}
ao invés de
Comentários muito úteis
Não deveríamos tocar em espaços inquebráveis em geral? Isso é o que eu esperaria pessoalmente se usar um em meu modelo. Também resolveria o problema que você mencionou