Javascript

Signalsが注目されるフロントエンド技術的背景

Signalsが急に話題になったのはなぜか Reactの仕組みが持つ構造的コスト Signalsの基本的な考え方 なぜこれが重要なのか 依存関係追跡という仕組み Virtual DOMとの違い なぜ今になって必要になったのか 注意点:万能ではない フロントエンドの流れの中での…

Virtual DOMはDOM操作の何を解決したのか

Virtual DOMは「速いDOM」ではない DOM操作はなぜ重いのか jQuery時代に起きていた問題 Virtual DOMの発想 なぜ差分検出が効くのか 「再レンダリング=遅い」という誤解 なぜ手動最適化では解決できなかったのか パフォーマンスの本当の効果 注意点:Virtual…

ブラウザ実装競争がフロントエンド寿命を縮める

ブラウザ競争がフロントエンド技術を短命にする理由 JavaScriptエンジンは1つではない なぜブラウザは競争しているのか 具体例:AJAXが不要になった瞬間 CSSでも同じことが起きている なぜSafariが特に問題になるのか Polyfillとトランスパイルの存在 技術選…

フロントエンド進化が速い原因はECMAScript更新

フロントエンドの進化が速く見えるのはなぜか ECMAScriptとは何か なぜJavaScriptだけ影響が大きいのか フレームワークが古くなる仕組み なぜフロントエンドは毎年学習が必要になるのか Babelとトランスパイルが加速させた変化 技術選定で注意すべき点 結局…

フロントエンドでフレームワークが毎年変わる理由

フロントエンドのフレームワークが「毎年変わる」と感じる理由 そもそもフロントエンドの役割が変わり続けている jQueryが最適だった時代 次の問題:画面が壊れる SPAフレームワークが登場した理由 さらに新しい問題:表示が遅い SSRが流行した本当の理由 そ…

SPAでメタタグ管理が難しくなる理由

SPAでは「head」がページごとに存在しない 通常のWebページでメタタグが機能する仕組み SPAではHTMLが1回しか来ない なぜこれが問題になるのか headを書き換えれば良いのでは? head管理ライブラリが必要になる理由 なぜSSRがこの問題を解決するのか Prerend…

SPAでフォーム送信が難しくなる本当の理由

SPAは「submit」を止めることで成立している ブラウザのネイティブsubmitはとても高機能 SPAはsubmitをキャンセルしている 代わりに何が起きているのか なぜ問題が頻発するのか 特に壊れやすい「リダイレクト」 なぜSSRでは問題が少ないのか よくある失敗例 …

SPAとマイクロフロントエンドが噛み合う理由

SPAは「画面遷移をしないWeb」であり、だからマイクロフロントエンドと相性が良い MPAでフロントエンド分割が難しい本当の理由 SPAでは「1つのOSの上に複数アプリ」が動く マイクロフロントエンドの正体は「ルーティングの分散管理」 実際の実装は「アプリを…

SSRのアイソモーフィックJavaScriptを理解する

「アイソモーフィックJavaScript」は“同じコードを2回実行する”という設計のこと なぜSSRはJavaScriptをサーバで実行する必要があるのか SSRの本質:HTMLを返すのではなく“状態を同期する” なぜ“ユニバーサルJavaScript”ではなく“アイソモーフィック”なのか …

SPAで巨大バンドルが生まれる理由とTree Shakingの限界

巨大バンドルの原因は「ライブラリが重い」ではありません なぜSPAはバンドルが1つに集まるのか Tree Shakingとは何をしているのか Tree Shakingが効かないパターン 副作用(side effect) CommonJS 動的参照 ライブラリが巨大化する理由 さらに大きな原因:…

SPAがメモリリークを起こしやすい本当の理由

SPAは「ページが切り替わらない」ことがメモリリークの原因です MPAでは起きにくく、SPAで起きる理由 イベントリスナがリークを生む仕組み Reactでよくある例 さらに危険なパターン setInterval DOM参照の保持 Promiseの未解決 メモリリークが実際に起きると…

SPAでSNSカードが壊れる原因とJS実行問題

SPAでSNSシェアカードが壊れるのはなぜか SNSクローラはブラウザではない SPAの初期HTMLの中身 メタタグ書き換え問題 GoogleとSNSの違い なぜSNSはJSを実行しないのか 実務でよくある誤解 解決策 1 SSR(Server Side Rendering) 2 SSG(静的生成) 3 Preren…

SPAの白画面問題の正体とJSバンドル

SPAで発生する「白画面問題」の正体 SPAの画面はHTMLでは作られていない JavaScriptバンドルとは何か 白画面が発生する具体的なポイント 1. ダウンロード失敗** 2. 構文エラー** 3. 実行時例外** なぜ開発環境では再現しないのか SSRとの決定的な違い JavaSc…

SPAの初回表示が遅い理由をブラウザ解析

SPAはなぜ初回表示が遅くなりやすいのか ブラウザがページを表示するまでの流れ SPAで実際に起きている処理 1. JavaScriptのダウンロード** 2. JavaScriptのパース** 3. 実行(評価)** 4. API通信** 5. DOM生成** 「通信が遅い」のではない なぜSSRは早く見…

jQueryは本当に不要かを技術検証する

jQueryは本当に不要になったのかを技術的に検証する なぜ不要と言われるのか DOM取得 イベント 通信 それでも消えない理由 ネイティブJSだけでは何が困るのか 二重読み込み問題の回避 実務での判断基準 よくある誤解 軽い=正しい 新しい=安全 注意点 まと…

モダンJSと比較したjQueryの責務の変化

モダンJSと比較したjQueryの責務の変化 かつてのjQueryの役割 モダンJSが変えたもの DOM操作 イベント Ajax アニメーション ではなぜjQueryは残っているのか WordPressで起きている状態 以前 現在 典型例:イベント委譲 責務が減った領域 責務が残った領域 …

querySelectorでjQueryは代替できるのか

`document.querySelector`でjQueryは置き換えられるのか なぜ昔はjQueryが必要だったのか `querySelector`が解決したこと 置き換えできない部分 イベント管理 Ajax アニメーション WordPressで重要になる点 典型的な失敗例 ではjQueryは不要なのか 向いてい…

WordPressでjQueryをネイティブJSへ移行手順

jQueryをネイティブJavaScriptへ移行する手順 なぜ単純削除が危険なのか 手順1:まず依存箇所を特定する 手順2:document.readyを置き換える 手順3:DOM取得の置き換え 手順4:イベント処理の移行 手順5:クラス操作の置き換え 手順6:Ajax通信 手順7:jQuer…

WordPressでjQueryを外したら壊れた原因を解析する

jQueryを外したらサイトが壊れた原因を分析する なぜ「使っていないのに壊れる」のか 典型例:問い合わせフォーム WordPressコアも使っている 実際に起きているエラー よくある削除方法と問題点 なぜ高速化記事では推奨されるのか 確認手順(実務) 1. 依存…

複数JSライブラリ共存で起きるjQuery問題

複数ライブラリ共存時にjQueryが起こす問題 WordPressはJavaScriptが1つではない 「競合」とは何が起きているのか jQuery以外も `$` を使う 典型的な壊れ方 二重読み込みという致命的問題 jQueryプラグインが動かない理由 WordPressがnoConflictを使う本当の…

WordPressdeでjQueryを使用する際に$が競合する理由とnoConflict()の正体

`$`が競合する理由と`noConflict()`の役割 `$`は特別な記号ではない 競合は実際に起きる `noConflict()`が何をしているのか 実際の状態の変化 WordPressが必ずnoConflictを使う理由 ではどうやってjQueryを書くのか よくある誤解 1. jQueryが壊れていると思…

WordPressでjQuery依存テーマが壊れる本当の原因

jQuery依存のテーマが壊れる原因 なぜjQuery依存テーマは壊れやすいのか WordPressのjQueryは普通のjQueryではない 具体的に何が起きるか `$`が使えない理由 正しい書き方 よくある壊れ方 1. CDN版jQueryに置き換えた 2. defer属性を付けた 3. footerへ移動…

WordPressが今もjQueryを抱える技術的理由

WordPressが今でもjQueryを抱えている理由 なぜWordPressはjQueryを削除できないのか WordPressの設計思想:後方互換性は絶対 管理画面がjQueryに依存している現実 なぜモダンJSに移行しないのか jQueryが残る本当の理由:プラグイン互換性 実際にjQueryを外…

それでもjQueryが現場で使われ続ける理由

jQueryは消えていない。むしろ「消せない」 Webアプリと業務画面は別物 導入コストの差 サーバサイドとの相性 既存システムという現実 小さな機能追加に強い 注意点 最後に jQueryは消えていない。むしろ「消せない」 jQueryはもう使われていない、という話…

jQueryが「古い」と言われる本当の理由

jQueryは古い技術だから嫌われているわけではない かつてjQueryが必要だった理由 現在のJavaScriptの変化 「書きやすさ」の逆転 モジュール化との相性 誤解されやすいポイント なぜ「古い」と感じるのか 最後に jQueryは古い技術だから嫌われているわけでは…

jQueryがSPA時代に衰退した技術的理由

jQueryは時代遅れになったのではなく「役割を終えた」 jQueryの前提 ― 「DOMは完成している」 SPAの前提 ― 「DOMは変化する」 状態管理の問題 なぜReact/Vueが解決できたのか 再描画コストの問題 パフォーマンスではなく「設計」の問題 最後に jQueryは時代…

Zepto.jsが生まれた理由とjQueryとの違い

Zepto.jsは「jQueryの軽量版」ではない jQueryが背負っていた最大の仕事 スマートフォンの登場で状況が変わる Zepto.jsの設計思想 サイズが小さい本当の理由 API互換なのに完全互換ではない理由 なぜZepto.jsは広く置き換えなかったのか その後の変化 最後に…

jQueryとPrototype.jsの思想の違いを解説

jQueryとPrototype.jsは「似たライブラリ」ではない Prototype.jsのアプローチ ― 言語そのものを拡張する jQueryのアプローチ ― 外側に包む $の衝突問題 なぜPrototype.jsは衰退したのか jQueryが普及した技術的理由 開発体験の違い 最後に jQueryとPrototyp…

なぜjQuery UIは巨大になったのか 技術的背景

jQuery UIは「機能を増やしたから」巨大になったわけではない 当時のブラウザ環境の現実 jQuery UIの中身はコンポーネントではない ウィジェットファクトリという設計 CSSの問題も背負っていた 実際の現場で起きていたこと なぜ現在は使われなくなったのか …

$.fnの意味とjQuery拡張の仕組みを理解する

$.fnを理解するとjQueryの正体が見える prototypeとは何か なぜ$("div").hide()が呼べるのか $.fnに追加すると何が起きるか thisが指しているもの なぜjQueryはこの設計を選んだのか メソッドチェーンが成立する理由 拡張の危険性 最後に $.fnを理解するとjQ…