タグ

ブックマーク / zenn.dev/ak (9)

  • Server Actions時代のformライブラリconform

    conformはプログレッシブ・エンハンスメントを意識して作られたReactのformライブラリです。 RemixやNext.jsなどのフレームワークをサポートしています。react-hook-formのServer Actions対応は現状検証段階なのですが、conformはすでにServer Actionsにも対応しています。 稿ではNext.js(App Router)におけるconformの使い方を中心に紹介します。 Server Actions もう散々他の記事や公式ドキュメントで紹介されていますが、簡単にServer Actionsについて復習します。 基的な使い方 Server Actionsはクライアントサイドから呼び出すことができる、サーバー側で実行される関数です。 この機能の最も一般的なユースケースは、サーバー側のデータを変更する際に呼び出すことです。ReactはJ

    Server Actions時代のformライブラリconform
  • HTMX入門【はじめからそうやって教えてくれればいいのに!】

    はじめに この記事の内容は、以下の動画でも解説しています。アニメーションでわかりやすくなっているので、ぜひ見てみてください。他にもWebに関する解説動画を投稿しているので、気になる人はチャンネル登録よろしくお願いします! HTMXとは? HTMX とは、一言で言うと、JavaScriptを書かずに動的なページを簡単に作成できるライブラリのことです。 htmx is a library that allows you to access modern browser features directly from HTML, rather than using javascript. (訳)htmx は、JavaScript を使用するのではなく、HTML から最新のブラウザー機能に直接アクセスできるようにするライブラリです。 </> htmx ~ Documentation ...と言っても

    HTMX入門【はじめからそうやって教えてくれればいいのに!】
    fivestech
    fivestech 2024/06/25
    どうにかしてHTMXを流行らせたい勢力がいるのを感じる...よほどメリットの大きいライブラリなのだろうか
  • PPRはアイランドアーキテクチャなのか

    先日、Next.jsの新たなレンダリングモデルであるPartial Pre-Rendering(以降PPR)について記事を投稿しました。 この記事を書いてる時は意識してなかったのですが、感想でアイランドアーキテクチャに言及されるケースが散見されました。社内で上記記事の話題になった時も同様に、アイランドアーキテクチャとの違いについて問われました。 結論から言うと、PPRとアイランドアーキテクチャは全く異なるものです。稿ではPPRとアイランドアーキテクチャの違いについて解説します。 PPR まずはPPRとアイランドアーキテクチャの概要を改めて整理しましょう。 PPRはページをstatic renderingとしつつ、部分的にdynamic renderingにすることが可能なレンダリングモデルです。具体的には、画面をbuild時(もしくはrevalidate後)に静的生成しつつ、リクエスト毎

    PPRはアイランドアーキテクチャなのか
    fivestech
    fivestech 2024/06/08
    これを読んでもアイランドアーキテクチャとの違いがわからなかったのでもう俺にNext.jsは無理かもしれない...
  • PPR - pre-rendering新時代の到来とSSR/SSG論争の終焉

    稿はNext.js v15.0.0-rc.0時点の情報を元に執筆しており、PPRはさらにexperimentalな機能です。v15.0.0のリリース時や、PPRがstableな機能として提供される際には機能の一部が変更されてる可能性がありますので、ご注意下さい。 Partial Pre-Rendering(以降PPR)はNext.js v14.0で発表された、SSRやSSGにならぶ新たなレンダリングモデルです。 PPRは前述の通り開発中の機能で、v15のRC版にてexperimentalフラグを有効にすることで利用することができます。ppr: trueとすれば全部のページが対象となり、ppr: "incremental"とすればexport const experimental_ppr = trueを設定したRouteのみがPPRの対象となります。 // next.config.mjs

    PPR - pre-rendering新時代の到来とSSR/SSG論争の終焉
    fivestech
    fivestech 2024/06/03
    PPRとアイランドアーキテクチャってもしかして同じもの?
  • Next.js breaking change - disable router/fetch cache by default

    Next.js App Routerは巷では難しいと評されることが多々あります。これはReactの新機能であるServer ComponentsをはじめとするServer 1stとも言えるパラダイムシフトを必要とすること、そして初見殺しなデフォルトのキャッシュ挙動に起因していると筆者は考えています。 パラダイムシフトが必要となるServer ComponentsやServer ActionsなどのReactの新機能については、エラーで指摘・修正のヒントが提示されるなどの初学者のフォローもしっかり考慮した設計がなされてたり、多くのドキュメントや記事が公開されているので、これらについてはhooksが登場した時のようにあとは世の中に理解が広まるまでの時間の問題なのかなとも感じています。 一方でキャッシュについては、デフォルトで積極的かつ何層にも分けてキャッシュされる上、「意図せずキャッシュされて

    Next.js breaking change - disable router/fetch cache by default
  • Next.jsのSSRF脆弱性 CVE-2024-34351

    Next.jsでSSRF(=Server Side Request Forgery)の脆弱性が発覚したことが社内で話題になったので、まとめておこうと思います。対象の脆弱性は以下です。 脆弱性の概要 SSRF脆弱性は来到達できないサーバーに対して、公開されてるサーバーを経由してアクセスすることができてしまう脆弱性です。 今回のNext.jsの脆弱性はhttpヘッダーのHostを書き換えることで、self hostingなNext.jsサーバーから任意のhttpリクエストを送信できてしまうというものです。これは、外部には公開してない内部APIに対するリクエストも可能になるため、SSRF攻撃になりえます。 今回の脆弱性の対象は、以下の条件を満たしている必要があります。 Next.jsをself hostingで運用している Next.jsアプリケーションがServer Actionsを利用して

    Next.jsのSSRF脆弱性 CVE-2024-34351
  • とってもやさしいGo言語入門

    フロントエンド用語を100秒で解説するチャンネルを作りました! よかったらチェックしてみてください! はじめに この記事は、Go言語を学び始めたばかりの人や、チュートリアルを読んで途中で挫折してしまったという人に向けて、Go言語の基礎的な文法を解説した記事です。といっても全てをカバーするのは大変だと思ったので、私自身が A Tour of Go を読んで難しいと感じた点をいくつかピックアップして書きました。今回の記事では、ポインタ・構造体・メソッド・インターフェースについて解説していこうと思います。 ポインタ A Tour of Go では、ポインタについて次のような説明をしています。 Go has pointers. A pointer holds the memory address of a value. (訳) Goはポインタを扱います。 ポインタは値のメモリアドレスを指します。

    とってもやさしいGo言語入門
  • ブラウザレンダリングの仕組み

    フロントエンド用語を100秒で解説するチャンネルを作りました! よかったらチェックしてみてください! はじめに 以前書いた記事「Webページがブラウザに表示されるまでに何が起こるのか?」で ブラウザレンダリングについて詳細に知りたいという意見をいただいたので、調べてまとめてみました。 全体図 レンダリングの大まかな流れです。 HTMLのダウンロード サーバから送られてきたHTMLをダウンロードします。 HTMLの解析 サーバから送られてきたHTMLファイルは、「0」と「1」でできたデータになっています。 ブラウザは、サーバから受け取ったデータをそのままHTMLとして解釈することはできないので、自分で扱うことができる形、つまりDOMに変換する必要があります。この作業を 解析 ( Parse ) と言います。 HTMLをダウンロードしたら、すぐにこの解析作業に入ります。作業は以下のようなステッ

    ブラウザレンダリングの仕組み
  • Webページがブラウザに表示されるまでに何が起こるのか?

    ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 上記で「127.0.0.1 localhost」とあるように、[IPアドレス] [ホスト名]というフォーマットで書かれます。 HOSTS.TXTが使われていた当時 ( 1970年代 ) では、わずか数百台のホストしかなかったので、ネット上の全てのホスト情報の記載が可能でした。 しかし、インターネットが普及していくにつれてHOSTS.TXTは肥大化していき、1983年には、ホスト数はおよそ数万台になりました。もはやHOSTS.TXTによる名前解決は不可能となったので、現在のようなDNS

    Webページがブラウザに表示されるまでに何が起こるのか?
  • 1