LoginSignup
29
14

More than 5 years have passed since last update.

[Vue.js] white-space: pre-wrap するときは v-text を使おう

Posted at

CSSの white-space: pre-wrap を使うと、このスタイルの当たった要素の中の空白はそのまま出力されます。
https://developer.mozilla.org/ja/docs/Web/CSS/white-space

<p style="white-space:pre-wrap;">
 吾輩わがはいは猫である。名前はまだ無い。
 どこで生れたかとんと見当けんとうがつかぬ。
</p>

Vue.jsでもこれは同様で、空白をそのまま反映したい場合は white-space: pre-wrap を使います。

<p style="white-space:pre-wrap;">{{ wagahai }}</p>

このとき、気を利かせて改行したりすると、textには含まれない余分な空白が出力されてしまいます。

<!-- NG -->
<p style="white-space:pre-wrap;">
  {{ wagahai }}
</p>

こういうときは、 v-text の出番です!
https://jp.vuejs.org/v2/api/#v-text

v-text は、要素のtextContentに、指定された値を代入します。

したがって、↓のように余分な空白が含まれている場合にも、空白の影響を受けることはありません。

<!-- 空白が含まれてもOK -->
<p style="white-space:pre-wrap;" v-text="wagahai">

</p>

v-text って、用途不明なディレクティブだったんですが、こういう使い道があったんですね :eyes:

29
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
14