React+axios は github 検索ユーザー機能を実装します (サンプル コード)

React+axios は github 検索ユーザー機能を実装します (サンプル コード)

ここに画像の説明を挿入

負荷

ここに画像の説明を挿入

リクエスト成功

ここに画像の説明を挿入

リクエストに失敗しました

ここに画像の説明を挿入

cmdをクリックし、ファイルパスでEnterキーを押します

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

まず、npm startでサーバーを起動します。

ここに画像の説明を挿入

アプリ

React をインポートします。{ コンポーネント } を 'react' からインポートします。
「./App.css」をインポートします
'./commons/Header' からヘッダーをインポートします
'./commons/List' からリストをインポートします
デフォルトクラスAppをエクスポートし、Componentを拡張します。
  // 状態を初期化する
  状態={
    ユーザー:[],
    isloading:false、
    isfirst:true、
    エラー:''

  }
  更新=(更新メッセージ)=>{
     this.setState() は、
      更新メッセージ
     )
  }
  与える() {
    戻る (
      <div className="コンテナ">
        <ヘッダー更新={this.update} />
        <ユーザーのリスト={this.state}></リスト>
      </div>
    )
  }
}

ヘッダー.jsx

React をインポートします。{ コンポーネント } を 'react' からインポートします。
「axios」からaxiosをインポートします

デフォルトクラス Header をエクスポートし、Component を拡張します {
  検索=()=>{
     console.log(this.searchbtn.value);
     this.props.update({isfirst:false, isloading:true})
     axios.get(`http://localhost:3000/api1/search/users?q=${this.searchbtn.value}`).then(
      // 成功時のコールバック応答=>{
        
         console.log("リクエストを正常に送信しました",response.data.items);
         this.props.update({ユーザー: response.data.items,isloading:false})
       },
      // 失敗時のコールバックエラー=>{
        this.props.update({err:error.message,isloading:false})
          console.log("失敗",error.message);
      }
     )
  } 

    与える() {
        戻る (
            <セクション className="ジャンボトロン">
            <h3 className="jumbotron-heading">Github ユーザーを検索</h3>
            <div>
              <input type="text" placeholder="検索する名前を入力してください" 
               ref={c=>this.searchbtn=c}
              />
              &nbsp;
              <button onClick={this.search}>検索</button>
            </div>
          </セクション>
        )
    }
}

リスト.jsx

React をインポートします。{ コンポーネント } を 'react' からインポートします。
'./Listem' から Listitem をインポートします

デフォルトのクラスListをエクスポートし、Componentを拡張します。
  与える() {
    戻る (
      <div クラス名="行">
        {
          this.props.users.isfirst ? <h2 style={{margin:"50px"}}>ようこそ、キーワードを入力してください</h2> :
          this.props.users.isloading ? <h2 style={{margin:"50px"}}>読み込み中......</h2> :
          this.props.users.err ? <h2 style={{margin:"50px"}}>{this.props.users.err}</h2> :
          this.props.users.users.map((a) => {
                  戻る (
                    <リスト項目キー={a.id} ユーザー={a} />
                  )
                })
        }
      </div>
    )
  }
}

リスト項目

React をインポートします。{ コンポーネント } を 'react' からインポートします。
「./index.css」をインポートします
エクスポートデフォルトクラスListitemはComponentを拡張します{
 
    与える() {
        戻る (
            <div className="カード" >
            <a href={this.props.users.html_url} ターゲット="_blank" >
              <img src={this.props.users.avatar_url} スタイル={{ width: '100px' }} />
            </a>
            <p className="card-text">{this.props.users.login}</p>
          </div>
        )
    }
}

react+axios を使って github ユーザーを検索する機能を実装するこの記事はこれで終わりです。もっと関連のある react axios github 検索コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を続けて閲覧してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Reactでaxiosを使用してリクエストを送信する一般的な方法
  • React Nativeでaxiosを使用してネットワークリクエストを行う方法
  • 1 つ以上のドメイン名への React axios クロスドメイン アクセス

<<:  MySQL Truncate の使用方法の詳細な説明

>>:  Linuxはシェルスクリプトを使用して履歴ログファイルを定期的に削除します

推薦する

CSSを使用して複数の画像を中央に水平に表示する方法

まず実装手順について説明します。最終結果 2. コードの実装HTML部分 <div class...

ドラッグフォトウォールを実現するネイティブJS

この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...

Vue は Tencent Map を統合して API を実装します (デモ付き)

目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

MySQL 8.0 の降順インデックス

序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...

JavaScript 文字列操作の 4 つの実用的なヒント

目次序文1. 文字列を分割する2. JSONのフォーマットと解析3. 複数行の文字列と埋め込み式4....

MySQLの日付と時刻関数の使用の概要

この記事はMySQL 8.0に基づいていますこの記事では、日付と時刻の操作のための MySQL 関数...

HTML+CSS を使用して、画像の右上隅に削除の十字と画像削除ボタンを追加します。

記録として、将来使用される可能性があり、困っている友人も使用できます。 BBはもうやめて、まずはレン...

Linux で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?

【問題分析】 chown コマンドを使用できます。ここで ch は change (変更) を表し...

HTML テーブルタグチュートリアル (19): 行タグ

<TR> タグの属性は、次の表に示すように、テーブル内の各行のプロパティを設定するために...

フレックスレイアウトにおけるflex-growとflex-shrinkの計算方法の詳しい説明

CSS のFlex(彈性布局)すると、Web ページのレイアウトを柔軟に制御できます。Flex Fl...

初心者のための入門チュートリアル⑤:ウェブサイト登録はとても簡単、簡単な登録のヒント

スペースを購入してウェブサイトを構築したことがある友人なら、ウェブサイトは正式に開設する前に登録する...

Vueのプラグインの仕組みとインストールの詳細を深く理解する

序文: Vue を使用する場合、多くの場合、カスタム プラグインをいくつか使用して記述し、 Vue....

Linuxでファイルを削除してもスペースが解放されない問題の対処方法

問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...

ウェブページのコピー防止機能の実装方法(クラッキング手法付き)

ソース ファイルを右クリックすると、次のコードが見つかります。 1. CSSを使用してFirefox...