v-html

記事の内容

v-html

v-htmlは、エスケープ処理されずにHTML要素を表示されるために利用されます。

記法

[ HTML ] =============================
 <要素名 v-html=”データプロパティ名”>
[ Vue.js ] =============================
 data() {
  return {
   データプロパティ名 : <要素名>文字列や数値</要素名>;
  };
 }

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>v-htmlについて</title>
  </head>
  <body>
    <div id="app">
      <p v-html="message"></p>
    </div>

    <script src="./js/html.js"></script>
  </body>
</html>
Vue.createApp({
  data() {
    return {
      message: `<p>こんにちは、トモジです!</p>
      <img src="画像のURL"/>`,
    };
  },
}).mount("#app");
出力結果

v-htmlを使用しなかった場合

vue.jsは、スクリプトを入力された場合に自動的にエスケープ処理(全て文字列へと変換)をして無毒化してくれます。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>v-htmlを使用しなかった場合</title>
  </head>
  <body>
    <div id="app">
      <p>{{ message }}</p>
    </div>

    <script src="./js/html.js"></script>
  </body>
</html>
Vue.createApp({
  data() {
    return {
      message: `<p>こんにちは、トモジです!</p>
      <img src="画像のURL"/>`,
    };
  },
}).mount("#app");
出力結果

<p>こんにちは、トモジです!</p> <img src=”画像のURL”/>

記事の内容
閉じる