メディア統括本部 サービスリライアビリティグループ(SRG)の石川雲(@ishikawa_kumo)です。 #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 本記
React の SSR にフレームワークの機能は必要ない React で SSR を行う際、フレームワークの機能を使わずに React の標準機能だけで実現する方法を紹介します。Next.js でも同じ方法が有効なので、これを使えば Remix への依存が本当の意味で最小になります。 Remix での一般的な方法だと SSR を行う場合、routes 直下のファイルで実装した loader 関数を使ってデータを作成し、各コンポーネント内の useLoaderData データを受け取ります。この方法だと、ページの頭でどんなデータを取得するかを決めなければならず、コンポーネントの状態に合わせて柔軟にデータを用意することが困難です。 実はそんな方法を使わずとも React には、コンポーネント側でデータを取得する機能が用意されています。もちろん React の利点を殺す ServerCompon
Cloudflare と環境変数 Cloudflare の Pages や Workers は、プロセス起動時点では環境変数が設定されていません。各エンドポイントが呼び出された時点で、環境変数が設定されます。そのため、サーバーサイドで環境変数を使う場合は、リクエスト毎に環境変数を取得する必要があります。 クライアント側に環境変数の値を真っ当に引き渡そうとすると、routes ごとに loader を設置して、ページごとに環境変数を配布しなければなりません。これは非常に面倒です。Remix の公式ドキュメントでは以下のようにやり方が紹介されています。 ここに含まれている以下のコードは実は致命的な問題があって、データに</script>という文字列が含まれていた場合、タグが終了してデータがぶった切れます。このようなデータの引き渡しを正常に処理するなら「<」 をパースする必要があります。 <sc
Remix の head の内容制御 Remix では Head の内容を設定するには、routes に配置したファイルから meta 変数をエクスポートする形で行うのが公式の方法です。ただ、この方法を使うと、各コンポーネント内から柔軟に内容を設定するようなことが出来ません。とんでもなく不便です。なぜこのような構造になっているかというと、各コンポーネントの評価が行われるよりも前に、head タグの評価が終了しているため、後から変更しようとしても出来ないからです。 しかし実は React はコンポーネントの実行順序を動的に変更する機能が標準で用意されています。それを使えば、各コンポーネント内で head に出力する内容を設定し、後から head の内容を出力することが可能になります。 コンポーネントの評価順序の変更方法 throw promise やり方は簡単です。現在のタイミングでレンダリ
新幹線停車駅から徒歩でスキー場に行けるってうれしい! 道中、雪に包まれた越後湯沢温泉街の雰囲気も楽しめます。 スキー場の玄関口でもある「湯沢高原ロープウェイステーション」にあるレンタルショップでは、スキーやスノーボードの板やブーツ、ウェアなどを借りることができます。自前の装備がなくても大丈夫! 雪山を楽しみたいけれど揃えるほどでは……、という初心者でも安心です。 さっそく、湯沢高原ロープウェイで高原エリアのゲレンデへGO! ちなみに、湯沢高原スキー場は下が山ろくエリア、上が高原エリアとなっています。 湯沢高原ロープウェイは、166人が乗ることができる世界最大級のロープウェイ。大きなゴンドラに乗り込んで、約7分の空の旅へ。 中は広々、長椅子もあって快適です。大きな窓からは、壮大な山々やゲレンデ、街並みなど圧巻のパノラマビューが眺めます。 そして、高原エリアのゲレンデに到着!! 一面の銀世界!
@storybook/nextjs使用時のインタラクションテストとモジュールモック Storybook でインタラクションテストを使用すると、コンポーネントの動作を GUI で確認しつつテストを書くことが出来ます。Jest や Vitest の CUI 上で表示確認無しでテストを書くのに比べると、圧倒的に楽にテストを書くことが可能です。ただし問題があって、Jest や Vitest から専用コマンドでテストを呼び出すときには、依存パッケージなどを関数単位で簡単にモック化できますが、Storybook のインタラクションテストではそうではありません。以下のようなファイル単位でのモックが必要となります。 関数単位でのモック作成は、以前に@storybook/nextjs用に Webpack と Babel の挙動をカスタマイズしてstorybook-addon-module-mockを作りまし
初めまして読まれる方は、はじめまして。前から読んで下さっている方はありがとうございます。もくくもと申します。私のnoteでは普段、ネットにレビューがほとんどないニッチなガジェットやニッチな使い方について、体験談と私見を好き勝手に書いています。 そんな私ですが先日、4年ほど愛用していたフィットから、カローラツーリングに乗り換えました。しかも1.2リッターターボの『マニュアル車』です。 クルマは好きですが知識はほとんどないので、クルマを題材に記事を書くつもり気はなかったのですが、あまりにもツーリングのマニュアル車について情報がないので、ニッチな商品を紹介してナンボな私が書かずしてどうすると思い、筆を執った次第です。 ですので、クルマに詳しくない素人が何か言ってるぞ程度の、話半分に読んで頂ければと思います。 ■ 私の愛車遍歴大した事ないですが、一応バックグラウンドを簡単にご紹介。 田舎暮らしの大
水槽を掃除しているとわざわざ挟まれにくるサメちゃんがX(旧Twitter)に投稿されました。記事執筆時点で動画は122万件以上表示され、4万5000以上の“いいね”を獲得。意図が気になるキュートな行動が「猫みたい」「楽しい遊具だと思ってそう」「前世は犬?」と話題になっています。 サメは映画のメインに据えられたり、キャラクター化されたりと世界的に人気なモチーフです。陸海空の総合“カッコイイ”いきものランキングが存在すれば上位入賞を狙えるポテンシャルがあるのは確実。そんなカッコイイの代名詞的存在が、新境地の“かわいい”に挑戦します! 水槽の掃除をしていると…… 壁失礼しま~す 飼い主さんがサメちゃんたちの暮らす水槽の内壁を掃除しているときのこと──通りかかった1匹のサンゴトラザメが、それに気がついてUターンしてきました。 ぶつからないように飼い主さんが一旦動きを止めると……、サメちゃんのほうか
おつかれさまです こまつhttps://lin.ee/CK9Z29Uです。 夏休みじゃい! しかし靴がお高くなりましたね。 部活とか通学でアシックス履こうにも KAYANOもGT2000も ファッションシューズ化していて 手が出せない値段になってます。 なので。 今回はジェネリックシリーズを ざくざく挙げていきます。 通学・通勤・走る・歩く方に 性能はそのまま、 お値段据え置きのモデルはこちら。 ・・・ ①ジェネリック「GEL-KAYANO」 ・アシックス「GEL-KUMO」 6589円。 【ASICS】 アシックス GEL-KUMO LYTE 4 ゲルクモライト 4 1011B770.401 ABC-MART限定 *IS BL/SUN PE ウィメンズはカラー限定ですが 同じ価格で22.5から在庫そろってます。 ウィズも「E」。 レディース 【ASICS】 アシックス W GEL-KUM
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く