[Laravel6]JavaScriptが2回実行されるので原因を調べてみた

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ってこういうものなのかもしれません。

知らない人ほどなんでだろうってハマってしまうと思うので、同じところで悩んでいる人に役立てば幸いです!

コメント

タイトルとURLをコピーしました