Vue.jsでtemplateタグ内にscriptやstyleタグを生成する方法|Tags with side effect are ignored

Vue.jsで<template>タグ内で動的に<script>タグや<style>タグを生成しようとするとコンパイル時に下記のエラーが出てしまいます。
Tags with side effect (<script> and <style>) are ignored in client component templates.そもそも<template>内に書くのはNGということみたいですが、今回はその回避方法をいくつかまとめておきます。
postscribeを使う
postscribeというパッケージを使えば回避できます。
まずは下記コマンドでnpmインストールしましょう。
npm install -D postscribe使用するときはmounted内でpostscribe()を呼び出し、設定したいタグを設定します。
<template>
<div id="script"></div>
</template>
<script>
import postscribe from 'postscribe'
export default {
name: 'postscribe-sample',
mounted() {
postscribe('#script', `<script src="https://gist.github.com/gautemo/d6b309c2bafe8f611f239b82f4f5501f.js"><\/script>`)
}
}
</script>HTMLのis属性を使う
HTMLにはis属性があり、これを使うとタグを別の扱いにできます。
下記のように記述すると<div>タグが<style>タグとして扱われます。
<div is="style"> body { background: red; } </div>ただ、この方法だと<style>タグは扱えますが、<script>タグはうまくいきませんでした。
本当にハック的な方法ですし、他の人が見たりある程度時間が経ってから見て混乱するので、最終手段です。


Dashで「Secure Input is Enabled」と表示される場合の対処法
アクセス解析ツールの定番!!Googleアナリティクスの登録方法
Visual Studio Codeで正規表現にマッチするか確認できる拡張機能「Regex Previewer」
Visual Studio CodeでMovable TypeのMTMLファイルを開く拡張機能「Movable Type Markup Language Syntax」
Vue CLIで共通のSCSSファイルを読み込む方法
Webデザイナーを目指す専門学生が技術ブログを書くメリット
Visual Studio Codeで複数ファイルを編集するときにタブやペインの操作方法
WordPressのデータを取得できるWP REST APIの使い方
gulpfile.jsにAutoprefixerのブラウザオプションを書くとエラーがでる場合の修正方法
WordPressで作成した記事をSlackでシェアしたときに、抜粋文が長く表示される場合の対処法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法