window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() Remixフレームワーク入門 - The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2022-04-12
ソフトウェア開発

Remixフレームワークを始める

The Codest

レダ・サルミ

React 開発者

Remixは、ウェブの基礎とモダンなUXに焦点を当てたフルスタックウェブフレームワークです。

そう、これはまた別の話なのだ。 JS しかし、このフレームワークが マイケル・ジャクソン そして ライアン・フローレンス 賢い連中 Reactルーター.では、この「ヴェルディの良いところ」を見てみよう。 リミックス・フレームワーク.

頭脳を使ったコミックJSフレームワーク

技術詳細

Remixはサーバーサイドフレームワークである。 ウェブフェッチAPI そして Reactルーターリミックスの各ルートには3つの主要なエクスポートがある。 ローダーを、"an "を、"an "を アクション とデフォルトの コンポーネント 輸出その ローダー 関数は、ルートにデータを提供するために、レンダリングの前にサーバー上で呼び出されます。 アクション 関数がデータ変異を担当する場合、デフォルトのエクスポートはそのルートにレンダリングされるコンポーネントになります。その ローダー そして アクション 関数はサーバー側でのみ実行され、必ず 応答 オブジェクトは デフォルト エクスポートはサーバー側とクライアント側の両方で実行される。

はじめに

新しいRemixを初期化するには プロジェクト:

npx create-remix@latest

重要:プロンプトが表示されたら、"Just the basics"、"Remix App Server "の順に選択してください。

cd [プロジェクト名を指定]。
npm run dev
```

開く http://localhost:3000その クリエート・リミックス コマンドを実行すると、次のような構造のスターター・テンプレートが得られる:

リミックス・フォルダー・アーキテクチャー - scr
  • について アプリ フォルダには、すべてのアプリケーションルートと コード.
  • について app/entry.client.jsx は、ブラウザで実行される最初のコードで、次のように使われる。 水和物 Reactのコンポーネント。
  • について app/entry.server.jsx このファイルは、Reactアプリを文字列/ストリームにレンダリングし、クライアントへのレスポンスとして送信します。
  • について app/root.jsx はルート・コンポーネントの場所である。
  • について app/routes/ はすべてのルートモジュールの行き先で、remixはファイルシステムベースのルーティングを使います。
  • について 公開 フォルダには静的アセット(画像、フォントなど)を入れます。
  • について remix.config.js はリミックスのコンフィギュレーションを設定する場所です。

口数は少なく、コードを見せろ

をチェックしてみよう。 ログイン.jsx Remixアプリ内のルート例:

import { redirect, json, Form, useActionData, useTransition } from 'remix';
import { isLoggedIn, verifyLogin } from '../auth';

export const loader = async ({ request }) => {
if (await isLoggedIn(request)) {
return redirect('/dashboard');
}

return json({ success: true });
};

export const action = async ({ request }) => {
const formData = await request.formData();
const values = {
email: formData.get('email') ?? '',
password: formData.get('password') ?? '',
};

const errors = await verifyLogin(values);
if (errors) {
return json({ errors }, { status: 400 });
}

return redirect('/dashboard');
};

export default function LoginRoute() {
const actionData = useActionData();
const transition = useTransition();
const isSubmitting = transition.state === 'submitting';

return (

Email

{actionData?.errors?.email &&
{actionData.errors.email}
}

  <div>
    <label htmlFor="password">Password</label>
    <input id="password" name="password" type="password" />
    {actionData?.errors?.password && (
      <div>{actionData.errors.password}</div>
    )}
  </div>

  <div>
    <button type="submit" disabled={isSubmitting}>
      {`Login ${isSubmitting ? '...' : ''}`}
    </button>
  </div>
</Form>

);
}
```

ここでまず起こることは ローダー 関数でログイン済みかどうかをチェックする。 isLoggedIn 関数を使用する。 リダイレクト に連れて行く。 /ダッシュボード ルートを返します。 {成功:true }。 レスポンスが返されると、ログインページがレンダリングされる。

について ログインルート は、電子メールとパスワードの入力と送信ボタンを持つフォームをレンダリングします。 状態 変数も オンサブミット イベントハンドラをコンポーネントに追加したのは、リミックスではすべてのルートが アクション また、フォームが ポスト メソッドのアクションが呼び出され、そのイベントを処理します。

フォームが送信されると アクション 関数は
フォームデータ より リクエスト オブジェクト const formData = await request.formData()を構築していることになる。 価値観 オブジェクトに電子メールとパスワードのプロパティを指定すると formData.get('email') を持つフォームの中で最初にマッチするフィールドを探します。 name="電子メール" プロパティを作成し、その値を返します。認証情報が正しいかどうかは ベリファイログイン 関数を使用すれば、好きなJSスキーマ検証ライブラリを使って フェッチ ログインデータが正しいかどうかをチェックするために、カスタムバックエンドにアクセスします。 リダイレクト ユーザーを /ダッシュボード ルートを返す。 json エラーオブジェクトと HTTPステータスコード400その 使用アクションデータ フックは、エラーがあればこのエラーオブジェクトを返し、条件付きでエラーメッセージを次のように表示する。 {actionData?.errors?.email &amp;&amp;. <div>{actionData.errors.email}</div>}.

について 使用トランジション フックはページの遷移状態についてすべてを教えてくれる。 isSubmitting 変数に投稿が発生したときにチェックしています。 無効にする 送信ボタンを押して ログイン... の代わりに ログインその代わりに、ローディング・スピナーやその他の表示をユーザーに見せることもできる。

について json 関数は application/json 応答オブジェクト。その useLoaderData フックはルートからパースされたJSONデータを返します。 ローダーその 使用アクションデータ ルートを返す アクション パースされたデータ。

SEOフレンドリー

各ルートは メタ Htmlドキュメントのメタタグを設定する関数です。 タイトル そして 記述 すべてのルートにオープングラフやその他のメタタグを追加します。

エクスポート const meta = () => {
const title = 'My Awesome Page';
const description = 'Super awesome page';

return {
charset: 'utf-8'、
タイトル、
説明
キーワード'Remix,Awesome'、
'twitter:image': 'https://awesome-page.com/awesome.png'、
'twitter:card': 'summarylargeimage'、
'twitter:クリエイター': '@awesome'、
'twitter:サイト': '@awesome'、
'twitter:title': タイトル、
'twitter:description': 説明、
};
};

エクスポート デフォルト関数 AwesomeRoute() {
return

オーサムルート

;
}
```

便利なリンク

私たちはRemixについての氷山の一角に取り組んだに過ぎない:

  • ドキュメント
  • ギズブ
  • 例フォルダ
  • Youtubeプレイリスト
  • Discordサーバー

概要

Remixの素晴らしいところは、Remixを使いこなすことでウェブの基礎が身につくことだ。 モジラのドキュメントRemixがウェブの基礎にフォーカスしているというのはこういうことだ。ResponseオブジェクトやRequestオブジェクトのようなウェブAPIを使って、ユーザーに素晴らしいUXを提供する。

この記事では、Remixが提供する以下のような素晴らしい機能のすべてについて話していない。 ネストされたルート, エラーの境界, リミックス・スタックス しかし、それでもこの記事を読めば、リミックスの哲学を理解できるはずだ。

関連記事

E-commerce

サイバーセキュリティのジレンマデータ漏洩

クリスマス前の駆け込み需要が本格化している。愛する人への贈り物を求めて、人々はますますオンラインショップを "襲撃 "することを厭わなくなっている。

The Codest
ヤクブ・ヤクボヴィッチ CTO & 共同創設者
ソフトウェア開発

Reactの長所と短所

なぜReactを使う価値があるのか?このJavaScriptライブラリにはどんな利点があるのか?その答えを見つけるために、この記事に飛び込んで、Reactを使う本当の利点を発見してください。

The Codest
セザリー・ゴラルスキー Software Engineer
ソフトウェア開発

Reactキー、はい!しかし、なぜ必要なのか?

Reactで配列を要素のリストに変換するのはとても簡単で、基本的に必要なのは、その配列をマップして、各要素に対して適切な要素を返すだけだ。

プシェミスワフ・アダムチク
ソフトウェア開発

テストからコンテナを実行する方法のクイックガイド

コンテナ・フォーム・テストの実行方法については、Java関連の記事でシニアJava開発者がすべてのマジックを紹介しています。

バルトロミエ・クシンスキ

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese