歴史/何が辛かったか
前提
HTML
Webページを表示できるように
CSS
ページの体裁やデザインを表現できるように
JavaScript
イベントの登録と発火
DOMの操作
本題
JavaScriptソースコード長くなりがち
辛い理由
code:js
// title という ID が付いた要素の中身をテキストにする
document.getElementById("title").innerHTML = "テスト";
解決方法
jQueryというJavaScriptライブラリが短縮記法を導入
jQuery のコンセプトである「Write Less, Do More」を実現するための関数などを提供
code:js
$("#title").html("テスト");
他にも jQuery は様々な機能を提供している
プラグイン、ライブラリ管理機能
現在は npm や webpack で管理
非同期通信の簡易化 (Ajax)
現在は標準で fetch API がある
ブラウザ間の API の違いの吸収
現在は Polyfill で
名前空間の汚染
辛い理由
変数名がかぶってしまったときに意図しない動作が起こる
解決方法
CommonJS や ES Modules でモジュール分割し、webpackで統合
ライブラリの依存関係がぐちゃぐちゃ
辛い理由
どのライブラリのどのバージョンで開発を進めなければならないかが複雑になる
環境構築に手間がかかる
expressの依存関係
解決方法
npmでパッケージ管理
新しいバージョンのJSをサポートしてないブラウザへの対応
辛い理由
JavaScriptの言語仕様であるES2015以上の仕様のJavaScriptで記述すると,古いブラウザでは動作しない
解決方法
Babelで下位バージョンJSへ変換
命令的UIが辛い
辛い理由
DOM 操作処理と HTML/CSS との対応がわかりずらい
解決方法
宣言的 UI の導入
コンポーネント指向
具体例
React
code:React
const Example = () => {
const test = "テスト"
return (
<p>{test}</p>
);
}
Angular
Vue.js
動的型付け辛い
辛い理由
実行時に型が決まるとデバッグ作業が大変
解決方法
TypeScript という静的型付け言語を導入
TypeScript コードをビルド時にトランスパイルしてJavaScriptコードに変換する
参考
JavaScriptの歴史をざっくりまとめたよ! Qiita
25 年に渡る JavaScript の歴史 | JetBrains
jQueryとは何なのか? なぜ使わなくても(あるいは使わないほうが)いいのか? - Qiita
↑ わたしが書きました ygkn.icon
おっさんES6/ES2015,React.jsを学ぶ
フロントエンド界隈Overview