2.6.11
https://gist.github.com/aimozg/c073eea5a55062e3dcd8f887a8567807
Запустите example.js в Node.
Альтернативные шаги / подробное объяснение:
whitespace: 'condense'
. (по умолчанию для vue-cli).
, например <p>a b</p>
объект отображается как неразрывный пробел; Вывод example.js должен содержать
---- whitespace: condense
// code
NBSP FOUND
entity отображается как обычное пространство, вывод example.js содержит
---- whitespace: condense
// code
NBSP NOT FOUND
Этот код компилятора удаляет пробелы:
if (!inPre && whitespaceOption === 'condense') {
// condense consecutive whitespaces into single space
text = text.replace(whitespaceRE, ' ')
}
и " "
s заменяются на "\xA0"
s с ранее использованным декодером сущностей.
Связанные вопросы https://github.com/vuejs/vue/issues/10485
Предложение :
Более узкие пробелы RE regexp, например /[ \t\r\n]+/g
.
Разве нельзя вообще трогать неразрывные пространства? Это то, чего я лично ожидал бы, если бы использовал его в своем шаблоне. Это также решит проблему, о которой вы упомянули
Установите компилятор шаблонов Vue с пробелом: 'condense'. (по умолчанию для vue-cli) .
Подождите, я в замешательстве. condense
действительно используется по умолчанию? Я вижу несколько вещей, которые утверждают, что preserve
на самом деле является значением по умолчанию.
Я изо всех сил пытался понять, почему ни одно из моих неразрывных пространств не работает. Я собирался попробовать принудительно сохранить, но тут увидел:
Эван говорит, что по умолчанию это preserve
https://github.com/vuejs/vue/issues/9208#issuecomment -450012518.
И документы параметров компилятора, которые повторяют этот оператор https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#options
Теперь, увидев, что @aimozg говорит, что condense
на самом деле используется по умолчанию, я пошел дальше и вручную установил preserve
и, конечно же! Все вернулось в норму!
Документы / реализация неверны?
В любом случае, зачем конденсировать устранять nbsp? Очень неожиданное поведение. Я согласен, их нельзя трогать.
Пробелы сохраняются в ядре Vue для обеспечения обратной совместимости, в то время как в последних версиях Vue CLI мы по умолчанию устанавливаем для него значение condense
.
то же самое с экранированной вкладкой 	
Очень сложно отобразить код
Жду слияния ...
Текущее решение
Использовать
{{'\xa0'}}
вместо
Самый полезный комментарий
Разве нельзя вообще трогать неразрывные пространства? Это то, чего я лично ожидал бы, если бы использовал его в своем шаблоне. Это также решит проблему, о которой вы упомянули