質問編集履歴

1

回答を参考にしてコードを変更

2022/06/24 00:14

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -5,7 +5,7 @@
5
5
  ```javascript
6
6
  <!DOCTYPE html>
7
7
  <html>
8
- <head></head>**ボールドテキスト**
8
+ <head></head>
9
9
  <body>
10
10
  <div id="app">
11
11
  <div v-html="table"></div>
@@ -28,3 +28,42 @@
28
28
  </script>
29
29
  </body>
30
30
  </html>
31
+ ```
32
+ コードを下記のようにv-htmlではなくコンポーネントにしてみました。
33
+ 上のテーブルはhtmlに直書きしたものです。下のテーブルがコンポーネントです。
34
+ 直書きしたものはonclickが動作します。しかしコンポーネントにしたものは動作しません。
35
+ デバックモードでタグを見ると両方ともv-onの部分が消えています。ということはvueで読み込まれたということだと思いますがなぜ動作しないのでしょうか?
36
+ ```javascript
37
+ <!DOCTYPE html>
38
+ <html>
39
+ <head></head>
40
+ <body>
41
+ <div id="app">
42
+ <div>
43
+ <vontest/>
44
+ </div>
45
+ <div>
46
+ <table><thead><tr><th v-on:click="onclick">head2</td></th></thead><tbody><tr><td>tabletest2</td></tr></tbody></table>
47
+ </div>
48
+ </div>
49
+ <script src="https://unpkg.com/vue@next"></script>
50
+ <script>
51
+ const appdata = {
52
+ methods:{
53
+ onclick() {
54
+ console.log("click")
55
+ }
56
+ }
57
+ }
58
+
59
+ let app = Vue.createApp(appdata)
60
+
61
+ app.component('vontest', {
62
+ template: `<table><thead><tr><th v-on:click="onclick">head</td></th></thead><tbody><tr><td>tabletest</td></tr></tbody></table>`
63
+ })
64
+
65
+ app.mount('#app')
66
+
67
+ </script>
68
+ </body>
69
+ </html>