100のプロジェクト40 -静的暗号データベースを作成することによって反応ルータを使用している実践
5112 ワード
おい!私は、100を反応させる任務にいます.月8日終了のJSプロジェクト.あなたの質問があれば私のdev . toプロファイルまたは私の更新のために私のdevに従って、アウトに達すること自由に感じなさい.あなたのサポートに感謝!
今日の配備されたアプリケーションへのリンクLink
レポへのリンクgithub
あなたが反応アプリケーションを構築しているならば、あなたは別々のページを表示する簡単な方法を持っているように、ほとんどいつもいくつかのルートを構築する必要があるでしょう.これらの日の標準は
このプロジェクトは、Ant DesignとLodashを使用して簡単なブログUIを構築します.あなたが最初からこれを構築したいならば、それは始まる最高の場所です.
Router Routerはあなたのアプリケーションのコンポーネントへの人工ルーティングを作成するツールです.なぜ人工?よく、URLルートは本物です、しかし、反応は一つのページ・アプリケーションを作成するので、ページ自体はちょうど「URLがこのアドレスにあるとき、この成分を示すだけです」とあなたが言っているだけです.
このプロジェクトでは
まず、パッケージをファイルにインポートする必要があります.私はすべての記事のプレビューを表示する私のアプリのコンポーネントでこれをやった.以下はパッケージのインポート方法です.
お使いのアプリケーションでルータを使用するには、まず最初にJSX要素を開き、ルータコンポーネントを作成します.スイッチを使用して、最初に一致するパスでコンポーネントを表示するようにReply Routerに指示します.この理由のために、我々は我々のインデックスページを底でリストします.
PATH '/'のインデックスページでは、投稿コンポーネントを示します.以下のようなデータを持つ可能性のあるすべての暗号の一覧を示します.
このコンポーネントでは、私たちのモックアップAPI、暗号化に関する情報で満たされたオブジェクトの配列を持つJSONファイルからデータをインポートします.我々は、模擬API配列の各オブジェクトをマップし、画面上に表示する私たちを使用して
この時点で私は途方に暮れた.このチュートリアルでは、Request Routerを使用していました.実際には、
反応ルータに入る
特定の株式とクリプトの周りの今週の誇大宣伝のすべてで、私はそれが彼らの名誉でトップ5 Coindesk CryptoCurrencyの上で少しのデータベースをつくることが楽しいと思いました.
明日のダイナミックデータを見て!これ以上の模擬API!
今日の配備されたアプリケーションへのリンクLink
レポへのリンクgithub
あなたが反応アプリケーションを構築しているならば、あなたは別々のページを表示する簡単な方法を持っているように、ほとんどいつもいくつかのルートを構築する必要があるでしょう.これらの日の標準は
react-router-dom
NPMパッケージこのプロジェクトは、Ant DesignとLodashを使用して簡単なブログUIを構築します.あなたが最初からこれを構築したいならば、それは始まる最高の場所です.
反応ルータ
Router Routerはあなたのアプリケーションのコンポーネントへの人工ルーティングを作成するツールです.なぜ人工?よく、URLルートは本物です、しかし、反応は一つのページ・アプリケーションを作成するので、ページ自体はちょうど「URLがこのアドレスにあるとき、この成分を示すだけです」とあなたが言っているだけです.
このプロジェクトでは
react-router-dom
パッケージは、私は実際にそれをするための(素晴らしい)ドキュメントを読んでいた私は次のチュートリアルはかなり古いと非推奨のルーティングシステムを使用します.まず、パッケージをファイルにインポートする必要があります.私はすべての記事のプレビューを表示する私のアプリのコンポーネントでこれをやった.以下はパッケージのインポート方法です.
import {
BrowserRouter as Router,
Switch,
Route
} from "react-router-dom";
インポートオブジェクトが利用できることに気づくでしょうaliasing “セクシー”に“セクシー”ブラウザールータの名前を変更する.お使いのアプリケーションでルータを使用するには、まず最初にJSX要素を開き、ルータコンポーネントを作成します.スイッチを使用して、最初に一致するパスでコンポーネントを表示するようにReply Routerに指示します.この理由のために、我々は我々のインデックスページを底でリストします.
const App = () => {
return (
<div className="app_container">
<Router>
<Switch>
<Route path='/post/:id'>
<Post />
</Route>
<Route path='/'>
<Posts />
</Route>
</Switch>
</Router>
</div>
);
}
あなたは、私たちがから持ってきた3つのコンポーネントのすべてを利用したことをここで見ることができますbrowser-router-dom
. ルータは、それがルータであるということを知っていて、それに応じて振る舞うということを知っています、スイッチは、ルータに、それがpath
属性.ルート要素は、ルートにするパスを定義する場所です.次に、子要素がルート要素に与えられ、どの要素を表示したいかを指定します.PATH '/'のインデックスページでは、投稿コンポーネントを示します.以下のようなデータを持つ可能性のあるすべての暗号の一覧を示します.
このコンポーネントでは、私たちのモックアップAPI、暗号化に関する情報で満たされたオブジェクトの配列を持つJSONファイルからデータをインポートします.我々は、模擬API配列の各オブジェクトをマップし、画面上に表示する私たちを使用して
PostSnippet
コンポーネント.これは昨日のプロジェクトでカバーされていたので、私は二度とそれをやり直すつもりはありません.しかし、そのためにJSXをチェックするためにGithubを見てください.また、私は非常にクールを使用してAntのデザインの中古コンポーネントを使用してNavbarを設定表示することができますtitle
属性.正しいコンポーネントの表示
この時点で私は途方に暮れた.このチュートリアルでは、Request Routerを使用していました.実際には、
:id
ポストパスの変数は、私たちがどうにか、我々がポストの中にいるとき、それを得る必要があります.どうやってこれをダイナミックに行うことができますか?私たちは小道具を渡すことができますが、もし私が記事を持っている10000個の暗号がある場合?反応ルータに入る
useParams()
メソッド.インポート後useParams
からのオブジェクトreact-router-dom
パッケージのポストコンポーネントでは、次のようにメソッドを使用して、このページの実際の一意IDを取得できます.import {useParams} from 'react-router-dom';
...
const postId = useParams().id;
これは実際のURLのパラメータを検索して、id
. 私たちは、このIDを我々の模擬クリプトカルスAPIを通して検索し、正しい情報を見つけることができます.私は次にuseState
and useEffect
そのPostid変数の変更があるときはいつでも、ポストコンポーネントの状態を設定するためにフックを反応させます.ここでは、そのコンポーネントが私のように見えます.import React, {useState,useEffect} from 'react';
import {Card,PageHeader} from 'antd';
import {useParams} from 'react-router-dom';
import api from '../mock_api';
const Post = (props) => {
const postId = useParams().id;
const [title,setTitle] = useState('');
const [content,setContent] = useState('');
const [imageUrl,setImageUrl] = useState('');
useEffect(() => {
let post = api[postId];
setTitle(post.coin);
setContent(post.description);
},[postId])
return (
<div className="post_container">
<div className="page_header_container">
<PageHeader
style={{
border: '1px solid rgb(235,237,240)'
}}
title={title}
/>
</div>
<div className="post_content_container">
<Card style={{marginTop: '20px'}} >
{
content.split('\n').map((textParagraph,idx) => {
return <p key={idx}>{textParagraph}</p>
})
}
</Card>
</div>
</div>
)
}
export default Post;
また、昨日のチュートリアルでカバーされているAnt DesignからカードとPageHeaderコンポーネントを使用することもできます.また、Pagebreakがあるときはいつでも、読み取り可能な段落に記述を分割するためのMAPメソッドも使用できます\n
テキストにエンコードされます.特定の株式とクリプトの周りの今週の誇大宣伝のすべてで、私はそれが彼らの名誉でトップ5 Coindesk CryptoCurrencyの上で少しのデータベースをつくることが楽しいと思いました.
明日のダイナミックデータを見て!これ以上の模擬API!
Reference
この問題について(100のプロジェクト40 -静的暗号データベースを作成することによって反応ルータを使用している実践), 我々は、より多くの情報をここで見つけました https://dev.to/jwhubert91/project-40-of-100-practice-using-react-router-by-creating-a-static-cryptocurrency-database-39k6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol