キーボードのF5やブラウザのリロードボタンではなく、
JavaScriptを使ってリロードする方法を紹介します。
また、クリックによってそのリロードを行うボタンの作成方法も解説します。
おねしゃす
完成コード
今回完成コードは2つ用意します。
完成コード①:超シンプル版
HTML
<button onclick="reloadPage()">ページをリロード</button>
JavaScript
function reloadPage() {
location.reload();
}
これでリロードボタン実装完了です。
JavaScriptで定義したリロード関数「reloadPage」を、ボタンのonclick属性に設定しただけです。
以下はこの方法のメリットとデメリットです。
メリット
・シンプル
・実装が簡単
デメリット
・ボタンが複数ある場合、それぞれに関数を呼び出すonclick設定が必要
・コードが散らばりやすい
完成コード②:JSでまるっとやっちゃう版
HTML
<button id="reloadButton">ページをリロード</button>
JavaScript
const button = document.getElementById("reloadButton");
button.addEventListener("click", function () {
location.reload();
});
これで完成です。
クリックイベントを、HTMLではなくJavaScript側でaddEventListenerを使って監視しています。
以下はこの方法のメリットとデメリットです。
メリット
・複数のボタンに同じイベントを簡単に連結できる
・JavaScriptとHTMLの分離ができる
デメリット
・ちょっとだけコード量が増える
基本的には、可能ならこちらのパターンで実装するのがベターかなと思います。
Reactなどを使用するときは注意
純粋なJavaScriptでのみ記述するという場合はあまり不都合ないかと思いますが、
ReactやNext.jsなどで今回のコードをそのまま使用するのは向いていません。
ReactはSPAのアーキテクチャを基本にしているため、ページの完全リロードは推奨されていません。
細かい話をするとステートの喪失につながるとか、パフォーマンスの低下、ルーティングの問題などがあるのですが
ここではひとまず「使用には注意が必要である」ということだけ覚えておいてください。
というわけで今回はJSでリロードする機能の作り方でした。
参考になれば幸いです。