bladeでsection使ったりでテンプレートを複数階層化しようとして実験していた時に、どのテンプレートが呼ばれたかをjsを使って確認していたらなぜか2回実行されるんですよ。
ブラウザの開発者ツールを見てもソース内に1つしかないし、かなり悩みましたがどうやらvue.jsが原因のようでした。
調べたことを簡単に紹介
実際書いていたのは↓の処理です。
<?php
<script type="application/javascript">
alert("debug1");
</script>
?>
画面にアクセスすると2回ポップアップが表示されていました。
上のjsは<div id=”app”>の中に書かれていました。(意識してなかったのですが)
※vueは「php artisan ui vue –auth」を実行した時に入ったはず。
resources/js/app.jsに↓の記述があるので
const app = new Vue({
el: '#app',
});
#appを#app2とかに変更&npm run devを実行して、再度画面にアクセスすると
なんということでしょう。JSに実行が1回だけになりました。(ビフォーアフター風)
そもそも今はvue.jsをよくわかっていないですし、単にvue.jsってこういうものなのかもしれません。
知らない人ほどなんでだろうってハマってしまうと思うので、同じところで悩んでいる人に役立てば幸いです!
コメント