WordPressのようなCMSだと直接HTMLを編集できないケースがあり、そのような場合にVue.jsのバインディング要素{{mess}}やv-modelをJSで挿入し、バインディングさせる方法はあるのでしょうか?
jQueryで{{}}を挿入してみましたが、案の定そのまま出力されてしまいました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
サンプルコードを作ってみましたのでご確認ください。
前提
- Vue-cliなどのツールではなくcdnサービスのVueを使ってます。
解説
- 固定で配置されれている.hogeという要素の隣に#appという要素を追加してVueを当ててます。
- VueインスタンスのtemplateプロパティにVueテンプレートを書きます。(サンプルではAppTemplateに格納してます)
- その他コンポーネントの共通化などする場合は公式サイトをご確認くださいm(__)m
https://jp.vuejs.org/v2/guide/components-registration.html
サンプル
html
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>唐突にVueアプリを誕生させる</title> 8 <script src="https://cdn.jsdelivr.net/npm/vue"></script> 9 <script> 10 window.addEventListener('DOMContentLoaded', (event) => { 11 12 // Vueアプリ用のDIV生成 13 const AppDiv = document.createElement('div'); 14 AppDiv.id = 'app'; 15 16 // Vueアプリ用のDIV追加 17 const target = document.querySelector('.hoge'); 18 target.parentNode.insertBefore(AppDiv, target.nextSibling); 19 20 // Vueテンプレート 21 const AppTemplate = 22 `<template> 23 {{ msg }} 24 </template>` 25 26 const App = new Vue({ 27 el: '#app', 28 data: { 29 msg: 'これはVue要素です' 30 }, 31 template: AppTemplate 32 }); 33 34 }); 35 </script> 36</head> 37<body> 38 <div class="hoge">↓↓↓↓ ここ下にVueアプリを描画 ↓↓↓↓</div> 39</body> 40</html>
投稿2021/06/17 20:08
総合スコア508
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/29 23:42
2021/06/30 10:59 編集
2021/07/07 16:01
2021/07/08 01:54