知見

目からウロコの知見、すぐ忘れるからここにメモっていく。

先に定義しといた方が効率的だった

変数にしちゃうとメモリ使うから…とか思ってたけど、querySelectorを2回呼び出す方が非効率らしい。可読性的にも。

const target = el.querySelector('.target');
if (target) {
	target.addEventListener('click', () => { /* 処理 */ });
}

「load」だけじゃなかった

ドキュメントの読み込み状況を確認してくれる。

document.addEventListener('readystatechange', (e) => {
	if (document.readyState === 'complete') onLoaded();
});

「scrollTo」だけじゃなかった

target要素が見えるところまでスクロールしてくれる。

const target = document.querySelector(location.hash);
target.scrollIntoView({ behavior: 'smooth' });

カスタムイベントはだから便利なのか

detailの中にdataを保持できる。

const replaced = new CustomEvent('replaced', {
	detail: { sitedata: state, root }
});
document.dispatchEvent(replaced);


この記事が気に入ったらサポートをしてみませんか?