ブリッツ.JS : Fullstack反応フレームワーク
おい、開発者
現在、ブリッツ.JSはユニークな特徴のために立ち上がる.同様に、typescriptはJavaScriptのスーパーセットですブリッツ.JSは次のスーパーセットのようです.js次のほとんどすべての機能.ジェッツワークス.jsも.
インデックス
Introduction
Building Project Management Application
導入
電撃によると.JSチーム、ブリッツは、Ruby on Railsに触発されたバッテリーを含むフレームワークです.そして、「ゼロAPI」を特徴とします🤯 REST/Graphqlの必要性を排除するデータ層抽象化.
ブリッツ.JSは次の上に構築されたフレームワークです.JSは、すべての退屈なものはすでにあなたのために設定が付属しています!eslintと同様に、jest、ユーザーのサインアップ、ログイン、およびパスワードをリセットします.
ブリッツ.JSは非常に柔軟である間、ルーティング、ファイル構造と認証のために役に立つデフォルトと規則を提供します.
機能
ブリッツ.JSは、あなたが簡単にサーバーまたはSerlilessのようなNetLifyまたはVercelのように保存することができますレコード時間で完全なスタックのアプリを構築するために、単一のアプリケーションですべてのプリセットされたフロントエンドにデータベースが付属しています.
バックエンドからデータを取得する代わりに、サーバーコードを直接コンポーネントにインポートします.ビルド時に、その関数インポートは自動生成されたHTTP APIでスワップアウトされます.
生成されたAPIはまた、アプリケーション&サードパーティによって使用することができます.
電撃で.JSは、あなたが使用できる何かをプラグインする無料です.ブリッツ.JSは特定のライブラリのみを使用するよう命令しません.例えば、デフォルトでは、blit.あなたは他の人に快適に感じるならば、あなたは他を使うことができます.
ブレイク.JSはすべての退屈なセットアップとデフォルトの設定を行います.共通のプロジェクト構造と建築パターンは、1つの電撃アプリから別のに移動し、すぐに自宅で感じる.
それは簡単に使用して、次の移行に簡単です.電撃へのJSアプリケーション.jsアプリ.
簡単にすべてのフォームでスケール:コードの行、コードベースで動作する人々の数、およびコードの実行.
レシピは、ブリッツの美しい機能の一つです.jsレシピを使用すると、簡単にコマンドの1行でサードパーティ製ライブラリを設定することができます.
例えば:
blitz install tailwind
あなたのために風を設定します.テストは電撃で事前設定されます.jsブリッツ.JSはテスト用のJestを使用します.
ブリッツ.jsは完全にtypescriptで構築され、電撃データ層は完全にエンドツーエンドtypesafeです.すべての型は完全に別の型生成プロセスを必要とせずに静的です!
インストール
ブリッツ.JSは、新しい電撃アプリ、コード足場、および多くを作成するための独自の強力なCLIを持っています.
ブリッツでの作業を開始します.あなたはノードを持たなければなりません.JSバージョン12またはあなたのPCに新しいインストールされます.インストールされたJSNode.js official documentation あなたのシステムにインストールするには.
次のコマンドを実行して、blitz CLIをグローバルにインストールします.
yarn global add blitz # yarn
npm install -g blitz --legacy-peer-deps # npm
While installing Blitz CLI with npm
--legacy-peer-deps
is needed because npm totally change the behavior of peer dependencies, and some dependencies haven't caught up
よく行うと、あなたのマシンにblitz CLIをインストールしました.今、あなたはAを実行してそれをチェックすることができます
blitz -v
コマンド.あなたはこのようなものを得る必要があります.でも
system option
, binaries path
, and blitz versions
異なるかもしれません.➜ blitz -v
Linux 5.11 | linux-x64 | Node: v14.17.3
blitz: 0.39.0 (global)
blitz: 0.39.0 (local)
Package manager: yarn
System:
OS: Linux 5.11 Pop!_OS 20.04 LTS
CPU: (4) x64 Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz
Memory: 146.59 MB / 3.76 GB
Shell: 5.8 - /usr/bin/zsh
Binaries:
Node: 14.17.3 - ~/.nvm/versions/node/v14.17.3/bin/node
Yarn: 1.22.10 - ~/.nvm/versions/node/v14.17.3/bin/yarn
npm: 6.14.13 - ~/.nvm/versions/node/v14.17.3/bin/npm
Watchman: Not Found
npmPackages:
@prisma/client: Not Found
blitz: ^0.39.0 => 0.39.0
prisma: Not Found
react: Not Found
react-dom: Not Found
typescript: Not Found
エラーが発生した場合は、comment section , きっとそれを解決しようと思います.アフター
blitz cli
がインストールされ、新しい電撃アプリを作成しましょう.ブリッツCLIを使用して、新しい電撃アプリを作成することができます.
blitz new your-amazing-app-name
Protip: If you don't want to install blitz CLI locally, you can even use it with the following command.
npx blitz new your-amazing-app-name
Blitz uses the alpha version of React, so you can use the features of the alpha release like
<Suspense>
.
さて、次のコマンドを実行して、Blitzアプリケーションを実行できます.
yarn dev # yarn
npm run dev # npm
あなたがブラウザを開いたとき、あなたはこのようなものを見るべきですhttp://localhost:3000 .あなたがサインアップしようとすると、電撃をチェックするにログインしてください.デフォルトの認証設定.
今すぐシンプルなプロジェクト管理アプリケーションを構築することによって学びましょう.
ブリッツにおけるルーティングjs
電撃から.JSは次の上に構築されます.JSは、次のように同じファイルベースのルーティングを使用します.js
電撃参照.jsRouting docs を参照してください.
プロジェクト管理アプリケーションの構築
我々は、電撃の多くのクールな機能を使用します.JSこのアプリケーションを構築中.私たちは、スタイルのためのTruwind CSSを使用します、データベースのためのSQLite(デフォルトでPrismaであらかじめ設定される)、およびデフォルト認証システム.
CSS
このチュートリアルでは、スタイルのためにTruwind CSSを使用しています.このプロジェクトではTruwind CSSを使用していますRecipe .
プロジェクトフォルダで次のコマンドを実行し、電撃のレシピの魔法を参照してください.
blitz install tailwind
Tailwindセットアップが完了すると、このようなものが表示されます.そして、あなたのプロジェクトのフォルダを参照してください
postcss.config.js
, tailwind.config.js
, and app/core/styles/index.css
.tailwind.config.js
tailwind構成を含みます.デフォルト使用のブリッツjit
Cookieにおけるモードpostcss.config.js
PostCSS構成を含みます.app/core/styles/index.css
スタイルを含みます./* index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.hero {
@apply w-full text-[#333];
}
}
.title {
@apply m-0 w-full pt-20;
font-size: 48px;
}
.title,
.description {
@apply text-center;
}
セットアップのセットアップは、単一のコマンドで完了します.それは電撃のレシピの魔法です.クリーンアップ(ブリッツアプリケーションをクリーンアップしましょう)
クリーンアップするには
app/pages/index.tsx
ファイル.app/api
-> このプロジェクトのAPIルートを作成していないのでapp/pages/projects
フォルダapp/projects
フォルダYou might get a question when we're building a Project Management application then why the heck we are removing the
projects
folder too.
The reason is, I want to show you the code scaffolding feature byblitz.js
.
このプロジェクトのファイルを作成する
Aを作る
app/pages/index.tsx
以下の内容をファイルにします.import { BlitzPage } from "blitz"
import Layout from "app/core/layouts/Layout"
/*
* This file is just for a pleasant getting started page for your new app.
* You can delete everything in here and start from scratch if you like.
*/
const Home: BlitzPage = () => {
return <></>
}
Home.suppressFirstRenderFlicker = true
Home.getLayout = (page) => <Layout title="Home">{page}</Layout>
export default Home
その後、インデックスページにデータを表示するために他のコンポーネントを使用します.私たちのプロジェクトはプロジェクトマネジメントに関するものです.これにより、ユーザーはプロジェクトを作成し、認証されたユーザーによって作成されたプロジェクトを取得し、プロジェクトを更新し、それらを削除して、それらのプロジェクトに関連するタスクを管理できます.我々は、すべてのCRUD操作をカバーします.
これらの操作のために必要なファイルを作成する必要があります.
次のコマンドを実行して魔法を見てください.
blitz generate all project
どうするかこれは、ページ、クエリ、突然変異を生成し、Prismaモデル
project
.これは次のファイルを生成します.
app/pages/projects/[projectId]/edit.tsx
app/pages/projects/[projectId].tsx
app/pages/projects/index.tsx
app/pages/projects/new.tsx
app/projects/components/ProjectForm.tsx
app/projects/queries/getProject.ts
app/projects/queries/getProjects.ts
app/projects/mutations/createProject.ts
app/projects/mutations/deleteProject.ts
app/projects/mutations/updateProject.ts
Prismaスキーマを更新します.これで、プロジェクト関連のページにアクセスできます.
/projects/some-id/edit
/projects/some-id
/projects/index
/projects/new
プロジェクト関連タスクのページはapps/pages/projects
フォルダ、そのコンポーネントはapps/projects/components
, そしてバックエンドの論理はapp/projects/queries
and app/projects/mutations
.Prisma migrate devを実行するかどうか尋ねます.現在、我々は我々を編集しなければなりません
schema.prisma
ファイル.
prisma migrate dev
will update your database with the schema blitz generated.
上で述べたように、タスクを管理するためのファイルも必要です.
そのためには、次のコマンドを実行します.
blitz generate all task --parent project
このコマンドは何でしょうか?このコマンドはいくつかのファイルを生成します:
app/pages/projects/[projectId]/tasks/[taskId].tsx
app/pages/projects/[projectId]/tasks/[taskId]/edit.tsx
app/pages/projects/[projectId]/tasks/index.tsx
app/pages/projects/[projectId]/tasks/new.tsx
app/tasks/components/TaskForm.tsx
app/tasks/queries/getTask.ts
app/tasks/queries/getTasks.ts
app/tasks/mutations/createTask.ts
app/tasks/mutations/deleteTask.ts
app/tasks/mutations/updateTask.ts
プロジェクトとタスクは1対多の関係を持つので、すべてのタスクはプロジェクトに関連します.だから、我々はtasks
with the parent of project
.データベース
電撃から.JSはPrismaとSQLiteをあらかじめ設定しています.
オープンユア
db/schema.prisma
ファイルと置換Project
and Task
以下のモデル.
model Project {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
description String
tasks Task[]
}
model Task {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
project Project @relation(fields: [projectId], references: [id])
projectId Int
}
Install Prisma Vs code extension for syntax highlighting, formating, auto-completion, jump-to-definition and linting for .prisma files.
次のコマンドを実行してデータベースを更新します.
blitz prisma migrate dev
さて、この移行に名前を付けます.何でも書けます.タイプしますcreate_project_tasks_table
.Protip: You can view the GUI for managing the database by the command
blitz prisma studio
.
From here you can select the model.
これは今日のみんな、明日、私は完全なアプリケーションを構築する次の記事が付属します.
今日学んだこと
Reference
この問題について(ブリッツ.JS : Fullstack反応フレームワーク), 我々は、より多くの情報をここで見つけました https://dev.to/chapagainashik/blitz-js-the-fullstack-react-framework-2kagテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol