見出し画像

webpackerでjQueryを管理してjavascriptを書きやすくする




[javascriptだけで記述した場合] (before)

window.onload = function () {
  document.querySelector("h2").addEventListener("mouseover", function (event) {
    this.style.color = "lightblue"
  }, false);
  document.querySelector("h2").addEventListener("mouseout", function (event) {
    this.style.color = ""
  }, false);
};

[webpackerでjQueryを管理した後] (after)

$(function () {
  $(document).on("mouseover", "h2", function () {
    $(this).css({ "color": "lightblue" });
  }).on("mouseout", "h2", function () {
    $(this).css({ "color": "" });
  })
});


上記の記述では、見出し画面のように
「マウスが文字の上に来たら水色になり、マウスが文字の上から外れたら色が元に戻る」を表現しています。


afterのように、
railsバージョン6からデフォルトで導入さている「webpacker」で、
jQueryを利用することにより、記述を短くできます。


[webpacker]


webpack というツールをrails仕様にしたGemです。
webpackとは、webアプリケーションを作るために用いられる、さまざまなjavascriptライブラリを管理してくれます。

webpackerは、webpackに代わり専用の設定ファイルやヘルパーメソッドを用意してくれます。



[導入方法]


1、jQueryはインストールします
(jQueryはGemもあるようでが、今回はこれでOKです。)

% yarn add jquery


2、webpackの設定ファイルでjQueryを管理下に追加するための記述をします

//const { environment } = require('@rails/webpacker')
const webpack = require('webpack')

environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery',
    jquery: 'jquery',
  })
)

//module.exports = environment


3、application.jsファイルでjQueryを呼び出します

:
:
require('jquery')


完了です。
あとは冒頭のコードを記述すればOKです😌







ご覧いただきありがとうございます。これはアウトプット用のnoteです。
よろしければアドバイスやコメント等お願いします!

いいなと思ったら応援しよう!