2.6.11
https://gist.github.com/aimozg/c073eea5a55062e3dcd8f887a8567807
Exécutez example.js dans Node.
Étapes alternatives / Explication détaillée:
whitespace: 'condense'
. (c'est par défaut pour vue-cli).
entité <p>a b</p>
entité rendue sous forme de caractère d'espace insécable; La sortie example.js doit contenir
---- whitespace: condense
// code
NBSP FOUND
entité
---- whitespace: condense
// code
NBSP NOT FOUND
L'espace blanc est supprimé par ce code de compilateur:
if (!inPre && whitespaceOption === 'condense') {
// condense consecutive whitespaces into single space
text = text.replace(whitespaceRE, ' ')
}
et " "
s sont remplacés par "\xA0"
s avec le décodeur d'entité plus tôt.
Les problèmes connexes sont https://github.com/vuejs/vue/issues/10485
Suggestion :
Expression rationnelle plus étroite des espaces blancs, comme /[ \t\r\n]+/g
.
Ne devrait-on pas toucher aux espaces insécables en général? C'est ce à quoi je m'attendrais personnellement si j'en utilisais un dans mon modèle. Cela résoudrait également le problème que vous avez mentionné
Configurer le compilateur de modèles Vue avec un espace: 'condenser'. (c'est par défaut pour vue-cli) .
Attendez, je suis confus. Est-ce que condense
vraiment la valeur par défaut? Je vois plusieurs choses qui prétendent que preserve
est en fait la valeur par défaut.
J'ai eu du mal à comprendre pourquoi aucun de mes espaces insécables ne fonctionne. J'allais essayer de forcer la conservation, mais j'ai ensuite vu:
Evan disant que la valeur par défaut est preserve
https://github.com/vuejs/vue/issues/9208#issuecomment -450012518
Et les documents d'option du compilateur qui font écho à cette déclaration https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#options
Maintenant, après avoir vu @aimozg dire que condense
est en fait la valeur par défaut, je suis allé de l'avant et j'ai défini manuellement preserve
et bien sûr! Tout est revenu à la normale!
Les documents / la mise en œuvre sont-ils erronés?
Quoi qu'il en soit, pourquoi condenser éliminerait nbsp? Comportement très inattendu. Je suis d'accord qu'ils ne devraient pas être touchés.
Les espaces blancs sont préservés dans Vue core pour assurer la compatibilité descendante tandis que dans les dernières versions de Vue CLI, nous configurons cela sur condense
par défaut.
idem avec l'onglet échappé 	
Rend très difficile l'affichage du code
En attente de la fusion de ces éléments.
Solution de contournement actuelle
Utilisation
{{'\xa0'}}
au lieu de
Commentaire le plus utile
Ne devrait-on pas toucher aux espaces insécables en général? C'est ce à quoi je m'attendrais personnellement si j'en utilisais un dans mon modèle. Cela résoudrait également le problème que vous avez mentionné