目次
【Svelte編】
第1章 はじめてのSvelte
- 1.1 Svelteの誕生と特徴
- 1.1.1 Svelteの特徴
 - 1.1.2 Svelteにおける「コンパイル」
 - 1.1.3 仮想DOMを使わない
 
 - 1.2 Svelteチュートリアル:ECサイトの商品ページ作成
- 1.2.1 プロジェクトの準備
 - 1.2.2 HTML/CSSによる画面構成要素の作成
 - 1.2.3 変数とイベントハンドラによる「カートに入れる」ボタンの挙動作成
 - 1.2.4 配列と{#each}構文による関連商品の表示
 - 1.2.5 コンポーネントの分割
 
 
第2章 Svelteの基本
- 2.1 環境構築
- 2.1.1 Svelte公式のREPL
 - 2.1.2 Viteによる開発環境の構築
 
 - 2.2 コンポーネント
- 2.2.1 .svelteファイルの構造
 - 2.2.2 テンプレートの基本的な記法
 - 2.2.3 スタイル
 - 2.2.4 ブロック
 - 2.2.5 コンポーネントの使用
 - 2.2.6 プロパティ
 - 2.2.7 スロット
 - 2.2.8 イベント
 - 2.2.9 ライフサイクル
 
 
第3章 Svelteのリアクティビティ
- 3.1 コンポーネントのリアクティビティ
- 3.1.1 変数代入
 - 3.1.2 $:プレフィックス
 - 3.1.3 配列とオブジェクトの更新
 - 3.1.4 入力のバインディング
 - 3.1.5 メディア要素のバインディング
 - 3.1.6 コンポーネントバインディング
 - 3.1.7 thisバインディング
 
 - 3.2 ストア
- 3.2.1 writableストア
 - 3.2.2 $による自動購読
 - 3.2.3 $による代入
 - 3.2.4 readableストア
 - 3.2.5 derivedストア
 - 3.2.6 カスタムストア
 - 3.2.7 ストアのバインディング
 
 
第4章 Svelteの高度な機能
- 4.1 高度なテンプレート記法
- 4.1.1 キー付きの{#each}ブロック
 - 4.1.2 {#key}ブロック
 - 4.1.3 {@...}タグ
 - 4.1.4 <svelte:...>タグ
 
 - 4.2 モジュールコンテキスト
- 4.2.1 各インスタンス間での状態の共有
 - 4.2.2 コンポーネント以外のエクスポート
 
 - 4.3 モーション・トランジション・アニメーション
- 4.3.1 モーション
 - 4.3.2 トランジション
 - 4.3.3 アニメーション
 
 - 4.4 コンテキスト
- 4.4.1 コンテキストAPIの使い方
 - 4.4.2 コンテキストの特徴とストアとの比較
 
 - 4.5 アクション
- 4.5.1 アクションの基本的な使い方
 - 4.5.2 アクションの例:DOM要素のリサイズ検出
 
 
【SvelteKit編】
第5章 SvelteKitによる複数ページアプリケーションの開発
- 5.1 SvelteKitの基本と導入
- 5.1.1 SvelteKitとは
 - 5.1.2 プロジェクトの作成
 - 5.1.3 SvelteKitプロジェクトのファイル構造
 
 - 5.2 デモアプリケーションの実装を読み解く
- 5.2.1 ページを表す.svelteファイル
 - 5.2.2 レイアウト―複数のページに共通の要素を配置
 - 5.2.3 フォームアクション―プログレッシブなWebアプリケーションを構築する仕組み
 
 - 5.3 ECアプリケーションの拡張
- 5.3.1 ①SvelteKitプロジェクトの作成
 - 5.3.2 ②商品ページに対応するルートの作成
 - 5.3.3 ③商品データとカートデータの取得
 - 5.3.4 ④フォームアクションでのカートへの追加
 - 5.3.5 ⑤「おすすめ商品」の表示
 
 
第6章 SvelteKitリファレンス
- 6.1 SvelteKitの主要な概念
- 6.1.1 ページルート
 - 6.1.2 サーバールート
 - 6.1.3 フォームアクション
 - 6.1.4 ルーティング
 - 6.1.5 レイアウト
 - 6.1.6 SvelteKitの実行モデル
 
 - 6.2 ページルート
- 6.2.1 +page.svelte
 - 6.2.2 +page.jsと+page.server.js
 
 - 6.3 フォームアクション
- 6.3.1 フォームアクションの基礎
 - 6.3.2 プログレッシブなエンハンスメント
 
 - 6.4 サーバールート
- 6.4.1 サーバールートとは
 
 - 6.5 ルーティング
- 6.5.1 ルート
 - 6.5.2 ルートに配置できるファイル
 - 6.5.3 高度なルーティング
 
 - 6.6 レイアウト
- 6.6.1 レイアウトの基礎
 - 6.6.2 レイアウトのネスト
 - 6.6.3 レイアウトのネストのリセット
 
 - 6.7 フック
- 6.7.1 SvelteKitのフック
 - 6.7.2 handle
 - 6.7.3 handleFetch
 - 6.7.4 handleError
 
 - 6.8 ヘルパーモジュール
- 6.8.1 $app/environment―実行環境に関する情報
 - 6.8.2 $app/forms―フォームアクションに関するヘルパー
 - 6.8.3 $app/navigation―ページ移動に関するヘルパー
 - 6.8.4 $app/paths―パスに関するへルパー
 - 6.8.5 $app/stores―アプリケーションレベルのストア
 - 6.8.6 @sveltejs/kit
 - 6.8.7 $env―環境変数へのアクセスを提供するモジュール
 
 - 6.9 ビルドとデプロイメント
- 6.9.1 設定が不要なホスティングサービス―adapter-auto
 - 6.9.2 Nodeサーバーとしてのビルド―adapter-node
 - 6.9.3 静的サイトの生成とSPAモード―adapter-static
 
 
第7章 MongoDBとVercelによる本番環境の構築
- 7.1 SvelteKitアプリケーションと本番環境
- 7.1.1 開発環境について/サンプルアプリケーションについて
 - 7.1.2 本番環境・ビルド・デプロイ
 
 - 7.2 MongoDBの導入
- 7.2.1 データベースの役割
 - 7.2.2 MongoDB Atlasでデータベースを作成
 - 7.2.3 mongodbパッケージの導入と接続情報の管理
 - 7.2.4 カートをMongoDBで実装
 - 7.2.5 商品をMongoDBで実装
 
 - 7.3 Vercelへのデプロイ
- 7.3.1 GitHubのセットアップ
 - 7.3.2 Vercelのセットアップ
 - 7.3.3 MongoDB Atlasのインテグレーションを導入
 - 7.3.4 環境変数の適用
 - 7.3.5 本番DBのシード
 - 7.3.6 動作確認
 
 
第8章 Auth0によるパスワードレスログイン実装とセッション管理
- 8.1 Auth0の準備
- 8.1.1 パスワードレス認証とは
 - 8.1.2 Auth0のアカウント作成と初期設定
 
 - 8.2 ログインフローの実装
- 8.2.1 ログイン処理の流れ
 - 8.2.2 ログインページの作成
 - 8.2.3 Auth0のAPIを呼び出す関数群
 - 8.2.4 コールバックURLの実装
 - 8.2.5 セッション情報をデータベースに保存
 - 8.2.6 ログインの動作確認
 
 - 8.3 ログインユーザーの判定と表示
- 8.3.1 ログインユーザー情報の取得
 - 8.3.2 ログイン中のユーザーの表示
 - 8.3.3 ログアウト機能
 
 - 8.4 ユーザーごとのカート作成
- 8.4.1 ユーザーIDごとにカートを作成
 
 - 8.5 Vercelへのデプロイ
- 8.5.1 Auth0を使うための準備
 - 8.5.2 環境変数の設定
 
 
第9章 ユーザー体験の改善―OGPタグとプリレンダリング
- 9.1 OGPタグの追加
- 9.1.1 OGPタグとJavaScriptアプリケーション
 - 9.1.2 商品ページにOGPタグを追加
 - 9.1.3 SSRの無効化
 - 9.1.4 CSRの無効化
 - 9.1.5 Vercelへのデプロイとカードの動作確認
 
 - 9.2 プリレンダリング
- 9.2.1 商品ページのプリレンダリング
 - 9.2.2 カートページの準備
 - 9.2.3 カート情報のクライアントサイドでの読み込み
 - 9.2.4 「カートに入れる」ボタンの挙動を改善
 - 9.2.5 プリレンダリングの動作確認