最近、ライブストリームのホストが、「10 年後には、React は私の頼りになるフレームワークではなくなるかもしれない」という興味深い考えを引き起こしました。これをきっかけに、Web フレームワークの進化について深く考えるようになりました。 いくつかの可能性のある方向性を探ってみましょう。
構文: HTML と JSX のブレンド
サーバーサイドのレンダリング、CodePen の実験、さらには Tumblr のカスタマイズなど、HTML に慣れている人にとっては、使い慣れた構文が重要です。 これを考慮してください:
<h1 id="Counter">Counter</h1> <p>Count is 0</p> <button onclick="increment()">Increment</button> <style> h1 { color: red; font-family: 'Comic Sans MS', cursive; } </style> <script> const p = document.querySelector('p'); let count = 0; function increment() { count++; p.textContent = `Count is ${count}`; } </script>
これは Svelte のアプローチに似ており、HTML の固有の構造を強化します。 より現代的な反復は次のようになります:
<script> let count = 0; function increment() { count++; } </script> <h1 id="Counter">Counter</h1> <p>Count is {count}</p> <button on:click={increment}>Increment</button> <style> h1 { color: red; font-family: 'Comic Sans MS', cursive; } </style>
マークアップは HTML に、CSS は <style></style>
に、JavaScript は <script></script>
に残ります。 コンポーネントベースの最新の HTML のような感じです。ただし、Web サイトの構築にはサーバー側の対話が必要です。
JSX を使用したサーバー側レンダリング
Web サーバーは、アセットをブラウザーに送信する前に、データベース接続、認証、およびデータ処理を処理します。 典型的なサーバー側ルートは次のようになります:
app.get('/', async (req, res) => { const user = await db.getUser(req.body); if (!user.isAuthenticated) return res.status(401); return res.html` <title>My Website</title> <h1 id="Hello-user-name">Hello ${user.name}</h1> `; });
サーバーでレンダリングされるページに JSX を使用することは直感的に理にかなっています:
export async function ProfilePage() { const user = await getSession(); if (!user) throw redirect('/login'); return ( <div> <img alt={user.name} src={user.profileUrl} /> <h1 id="Hi-user-name">Hi {user.name}</h1> <style> h1 { font-family: 'Comic Sans MS', cursive; } </style> </div> ); }
これは React コンポーネントに似ていますが、完全にサーバー上に存在します。クライアント側の JavaScript は依然として対話性にとって重要です。
両方の長所
Remix のローダーとアクション、または React Server Components (RSC) に似たシステムを使用して、サーバー側の JSX とクライアント側の対話性を組み合わせてみましょう。ただし、明示的なディレクティブは使用しません。
export async function CounterPage() { let initialValue = await db.getCount(); async function updateCount(formData) { let count = +formData.get('count'); await db.updateCount(count); } return ( <div> <script> let count = {initialValue}; function update(e) { count = e.target.value; } </script> <p>Count is {count}</p> <input type="number" value={count} onchange={update} /> <button onclick={() => updateCount({count})}>Save</button> <style> p { font-family: 'Comic Sans MS', cursive; } </style> </div> ); }
フレームワークは、コンテキストに基づいて updateCount
を RPC 呼び出しとしてインテリジェントに識別します。
反応性: スピードの合図
軽量で反応性の高いシステムが不可欠です。 Svelte のシグナルが有力な候補です:
export function Counter() { let count = 0; $effect(() => console.log(count)); function increment() { count++; } return ( <div> <h1 id="Count-is-count">Count is {count}</h1> <button onclick={increment}>Increment</button> </div> ); }
データの取得: 暗黙的なサーバー アクション
'use server'
のような明示的なディレクティブの代わりに、言語機能を活用できます。 action
のようなキーワードでサーバー側の処理の関数を指定するとします。
export async component Counter() { let initialValue = await db.getCount(); async action updateCount(formData) { await db.updateCount(+formData.get('count')); } // ... rest of the component }
これにより、クライアントとサーバーのロジックを明確に分離しながら、コードが簡素化されます。
結論: 提案ではなくビジョン
この検討は具体的な枠組みの提案ではなく、思考実験です。 目標は、既存のテクノロジーの最良の側面を融合し、今後 10 年間に向けてよりシンプルで直感的な開発エクスペリエンスを提供するフレームワークを構想することです。 Web フレームワークの将来についてはどう思いますか?
以上がWeb フレームワーク: 未来の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

単純なJavaScript関数は、日付が有効かどうかを確認するために使用されます。 関数isvaliddate(s){ var bits = s.split( '/'); var d = new Date(bits [2] '/' bits [1] '/'ビット[0]); return !!(d &&(d.getmonth()1)== bits [1] && d.getdate()== number(bits [0])); } //テスト var

この記事では、jQueryを使用して、DOM要素の内側のマージン値とマージン値、特に外側の縁と要素の内側の縁の特定の位置を取得して設定する方法について説明します。 CSSを使用して要素の内側と外側の縁を設定することは可能ですが、正確な値を取得するのは難しい場合があります。 // 設定 $( "div.header")。css( "margin"、 "10px"); $( "div.header")。css( "padding"、 "10px"); このコードはそうだと思うかもしれません

この記事では、10個の例外的なjQueryタブとアコーディオンについて説明します。 タブとアコーディオンの重要な違いは、コンテンツパネルの表示方法と非表示にあります。これらの10の例を掘り下げましょう。 関連記事:10 jQueryタブプラグイン

ウェブサイトのダイナミズムと視覚的な魅力を高めるために、10の例外的なjQueryプラグインを発見してください!このキュレーションされたコレクションは、画像アニメーションからインタラクティブなギャラリーまで、多様な機能を提供します。これらの強力なツールを探りましょう。 関連投稿: 1

HTTP-Consoleは、HTTPコマンドを実行するためのコマンドラインインターフェイスを提供するノードモジュールです。 Webサーバー、Web Servに対して作成されているかどうかに関係なく、HTTPリクエストで何が起こっているかをデバッグして正確に確認するのに最適です

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

次のjQueryコードスニペットを使用して、Divコンテンツがコンテナ要素領域を超えたときにスクロールバーを追加できます。 (デモンストレーションはありません、それを直接firebugにコピーしてください) // d =ドキュメント // w =ウィンドウ // $ = jQuery var contentarea = $(this)、 wintop = contentarea.scrolltop()、 docheight = $(d).height()、 winheight = $(w).height()、 divheight = $( '#c


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
