目次
React の基本設定
(Reactはユーザーインターフェイスを構築するために使用されるJAVASCRIPTライブラリです。Reactは主にUIを構築するために使用されます。多くの人はReact
关于详情: {this.props.match.params.id}
我的详情
react-router4 は他のバージョンのジャンプと矛盾しています

React+mongodbの使い方と設定

Jul 13, 2018 pm 04:58 PM
mongodb node.js react.js redux

この記事では主に React+mongodb の使い方と設定を紹介します。必要な友達は参考にしてください

React の基本設定

(Reactはユーザーインターフェイスを構築するために使用されるJAVASCRIPTライブラリです。Reactは主にUIを構築するために使用されます。多くの人はReact

がMVCのV(ビュー)であると考えています。)


    インターネット上には多くのチュートリアルがありますが(しかし、自分で構築することはできません。いくつかの落とし穴に遭遇したので、自分で解決し、自分の欠点に気づきました)
    npm install -g create-react-app グローバルインストール
  1. create-react-app act_mongodb (
  2. これは私のプロジェクト名です

    )

  3. 以下は私のインストールプロセスです

React+mongodbの使い方と設定 4. プロジェクト npm start を入力すると、プロジェクトが正常にビルドされたことがわかります

React+mongodbの使い方と設定
5. 誰もが理解できるようにディレクトリ構造を分析しましょう

React+mongodbの使い方と設定6. Webpack 設定を開くか (npm run eject)、自分で設定します
コマンドを実行すると、次のディレクトリが表示されます。


redux の基本的な使い方

React+mongodbの使い方と設定

redux を始めるようにみんなを導きます

1> 最初に npm i redux --save
    2> redux の例を確認した後、コードを分割します
  1. 3> ; 同期と非同期の導入 (react は非同期処理を行うために redux-thunk プラグインを必要とします)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

       * redux.js

             const ADD = '嘻嘻'

             const REMOVE = '呵呵'

              

             // reducer

             export function counter(state = 0, action) {

                 switch (action.type) {

                     case ADD:

                         return state + 1;

                     case REMOVE:

                         return state - 1;

                     default:

                         return 10;

                 }

             }

              

             // action creator

             export function addgun() {

                 return { type: ADD }

             }

              

             export function removegun() {

                 return { type: REMOVE }

             }

              

             // 异步函数操作

             export function addgunAsync() {

                 return dispatch => { // dispatch参数

                     setTimeout(() => {

                         dispatch(addgun())

                     }, 2000)

                 }

             }

          

          

       * 在index.js中引入

             import React from 'react';

             import ReactDOM from 'react-dom';

             import { createStore, applyMiddleware } from 'redux'// applyMiddleware 处理中间键

             import thunk from 'redux-thunk';  // 中间键

             import registerServiceWorker from './registerServiceWorker';

             import App from './App';

              

             import { counter, addgun, removegun, addgunAsync } from './redux';

              

             // 创建一个store counter执行reducer方法

             const store = createStore(counter, applyMiddleware(thunk))

             // const store = createStore(counter)

              

             function render() {

                 ReactDOM.render(<app></app>, document.getElementById('root'));

             }

             render()

              

             // 更新后重新渲染

             store.subscribe(render)

             // ReactDOM.render(<app></app>, document.getElementById('root'));

             registerServiceWorker();

     

       * App.js 组件

           import React, { Component } from 'react';

     

             export default class App extends Component {

                 render() {

                     const store = this.props.store

                     const num = store.getState()

              

                     // 由父组件中传入

                     const addgun = this.props.addgun

                     const removegun = this.props.removegun

                     const addgunAsync = this.props.addgunAsync

                     return (

                         <p>

                             </p><h1>

                                 hello

                                 <br>

                                 {num}

                             </h1>

                             <button> store.dispatch(addgun())}>加一</button>

                             <button> store.dispatch(removegun())}>减一</button>

                             <button> store.dispatch(addgunAsync())}>异步添加</button>

                          

                     )

                 }

             }

     

     * 这里你可以打开浏览器查看效果

    ログイン後にコピー


    react-redux の使い方とインストール npm iact-redux -S (--save の略です)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

      Provider 组件应用在最外层, 传入store,只调用一次

      connect 负责从外部获取组件需要的参数

      connect 可以用装饰器的方式来写

     

      & 下面是修改过的代码: 依然使用redux.js

       

        修改了**App.js index.js**

         

            index.js

                 import React from 'react';

                 import ReactDOM from 'react-dom';

                 import { createStore, applyMiddleware, compose } from 'redux'// applyMiddleware 处理中间键

                 import thunk from 'redux-thunk';  // 中间键

                 import { Provider } from 'react-redux';

                 import registerServiceWorker from './registerServiceWorker';

                 import App from './App';

                  

                 import { counter } from './redux';

                  

                 // 创建一个store counter执行reducer方法

                 const store = createStore(counter, compose(

                     applyMiddleware(thunk),

                     window.devToolsExtension ? window.devToolsExtension() : f => f

                 ))

                  

                 ReactDOM.render(

                     <provider>

                         <app></app>

                     </provider>,

                     document.getElementById('root'));

                 registerServiceWorker();

    ログイン後にコピー
  2. 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

               App.js 组件

                    import React, { Component } from 'react';

                    // 连接使用

                    import { connect } from 'react-redux';

                    import { addgun, removegun, addgunAsync } from './redux/index.redux';

                    class App extends Component {

                        render() {

                            return (

                                <p>

                                    </p><h1>

                                        hello

                                        <br>

                                        {this.props.num}

                                    </h1>

                                    <button>加一</button>

                                    <button>减一</button>

                                    <button>异步添加</button>

                                 

                            )

                        }

                    }

                     

                    const mapStatetoProps = (state)=> {

                        return { num: state }

                    }

                    const actionCreators = { addgun, removegun, addgunAsync }

                    // 装饰器的使用 connect  链接过后可以用  this.props 获取

                    App = connect(mapStatetoProps, actionCreators)(App)

                    export default App;

       

            ** 这里是不是感觉比store.subscribe方便一点

    ログイン後にコピー
  3. 1

            (调试react  推荐谷歌插件 Redux DevTools) 在谷歌商店下载需要翻墙

    ログイン後にコピー
  4. react-router4

React+mongodbの使い方と設定

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

 *注意点*: 下载router包   npm i react-router-dom --save

             react-router-dom 也有2个路由参数  

                 HashRouter(带#路由)

                 BrowserRouter (不带#号) 如果使用这种路由 和Vue一样需要后台配置

     

    下面提供代码 供朋友参考:

        import React from 'react';

        import ReactDOM from 'react-dom';

        import registerServiceWorker from './registerServiceWorker';

        import { createStore, applyMiddleware, compose } from 'redux'// applyMiddleware 处理中间键

        import thunk from 'redux-thunk';  // 中间键

        import { Provider } from 'react-redux';

        import { BrowserRouter, Route, Link, Redirect, Switch } from 'react-router-dom';

        import App from './App';

         

        import { counter } from './redux/index.redux';

         

        // 创建一个store counter执行reducer方法

        const store = createStore(counter, compose(

            applyMiddleware(thunk),

            window.devToolsExtension ? window.devToolsExtension() : f => f

        ))

         

        class about extends React.Component {

            render () {

                return (

                    <h1 id="关于详情-this-props-match-params-id">关于详情: {this.props.match.params.id}</h1>

                )

            }

        }

         

        function home() {

            return <h1 id="我的详情">我的详情</h1>

        }

         

        ReactDOM.render(

            (

                <provider>

                    <browserrouter>

                        <p>

                            </p>

<ul>

                                <li>

                                    <link>嘻嘻嘻

                                </li>

                                <li>

                                    <link>关于

                                </li>

                                <li>

                                    <link>我的

                                </li>

                            </ul>

                            <switch>

                                {/* {Switch} 默认只会匹配第一个 */}

                                <route></route>

                                <route></route>

                                {/* match.params.id 取值 */}

                                <route></route>

                            </switch>

                         

                    </browserrouter>

                    {/* <app></app> */}

                </provider>

            ),

            document.getElementById('root'));

            registerServiceWorker();

             

       *

ログイン後にコピー

react-router4 は他のバージョンのジャンプと矛盾しています

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

        

     如果使用一下跳转方式 会包错 push

     this.props.history.push('/about')

            

          在4.x 中提供了一个高阶组件  withRouter

           

          import { withRouter } from "react-router-dom";

 

          eg: 以下事例

           

            import React, { Component } from 'react';

            import { withRouter } from "react-router-dom";

             

            class Info extends Component {

                handleClick() {

                    this.props.history.push('/about')

                }

                render() {

                    return (

                        <button> this.handleClick()}>加一</button>

                    )

                }

            }

             

            export default withRouter(Info);

           

           

          后续更新全部!!!!

ログイン後にコピー

以上がこの記事の概要です。すべての内容が皆様の学習に役立つことを願っています。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。 React+mongodbの使い方と設定

関連する推奨事項:

react-router の簡単な分析

NodeJS + Lighthouse + Gulp を使用して自動 Web サイト パフォーマンス テスト ツールを構築する方法

以上がReact+mongodbの使い方と設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

mongodb ではどのバージョンが一般的に使用されますか? mongodb ではどのバージョンが一般的に使用されますか? Apr 07, 2024 pm 05:48 PM

最新の機能と改善が提供される MongoDB の最新バージョン (現在 5.0) を使用することをお勧めします。バージョンを選択するときは、機能要件、互換性、安定性、コミュニティ サポートを考慮する必要があります。たとえば、最新バージョンにはトランザクションや集計パイプラインの最適化などの機能が備わっています。バージョンがアプリケーションと互換性があることを確認してください。運用環境の場合は、長期サポート バージョンを選択してください。最新バージョンでは、より積極的なコミュニティサポートが提供されています。

Nodejsとvuejsの違い Nodejsとvuejsの違い Apr 21, 2024 am 04:17 AM

Node.js はサーバー側の JavaScript ランタイムであり、Vue.js は対話型ユーザー インターフェイスを作成するためのクライアント側の JavaScript フレームワークです。 Node.js はバックエンド サービス API 開発やデータ処理などのサーバー側開発に使用され、Vue.js はシングルページ アプリケーションや応答性の高いユーザー インターフェイスなどのクライアント側開発に使用されます。

mongodb によって作成されたデータベースはどこにありますか? mongodb によって作成されたデータベースはどこにありますか? Apr 07, 2024 pm 05:39 PM

MongoDB データベースのデータは、ローカル ファイル システム、ネットワーク ファイル システム、またはクラウド ストレージに配置できる指定されたデータ ディレクトリに保存されます。具体的な場所は次のとおりです: ローカル ファイル システム: デフォルトのパスは Linux/macOS: /data/db、Windows: C:\data\db。ネットワーク ファイル システム: パスはファイル システムによって異なります。クラウド ストレージ: パスはクラウド ストレージ プロバイダーによって決定されます。

mongodbデータベースの利点は何ですか mongodbデータベースの利点は何ですか Apr 07, 2024 pm 05:21 PM

MongoDB データベースは、その柔軟性、スケーラビリティ、および高いパフォーマンスで知られています。その利点には、データを柔軟かつ非構造化された方法で保存できるドキュメント データ モデルが含まれます。シャーディングによる複数サーバーへの水平スケーラビリティ。クエリの柔軟性により、複雑なクエリと集計操作をサポートします。データ レプリケーションとフォールト トレランスにより、データの冗長性と高可用性が確保されます。 JSON サポートにより、フロントエンド アプリケーションと簡単に統合できます。大量のデータを処理する場合でも高速な応答を実現する高いパフォーマンス。オープンソースでカスタマイズ可能で無料で使用できます。

mongodb とはどういう意味ですか? mongodb とはどういう意味ですか? Apr 07, 2024 pm 05:57 PM

MongoDB は、大量の構造化データと非構造化データを保存および管理するために使用されるドキュメント指向の分散データベース システムです。その中心的な概念にはドキュメントのストレージと配布が含まれ、その主な機能には動的スキーマ、インデックス作成、集約、マップリデュース、レプリケーションが含まれます。コンテンツ管理システム、電子商取引プラットフォーム、ソーシャル メディア Web サイト、IoT アプリケーション、モバイル アプリケーション開発で広く使用されています。

mongodb データベース ファイルはどこにありますか? mongodb データベース ファイルはどこにありますか? Apr 07, 2024 pm 05:42 PM

MongoDB データベース ファイルは、MongoDB データ ディレクトリにあります。デフォルトでは /data/db です。このディレクトリには、.bson (ドキュメント データ)、ns (コレクション情報)、journal (書き込み操作レコード)、wiredTiger (WiredTiger 使用時のデータ) が含まれています。ストレージ エンジン ) および config (データベース構成情報) およびその他のファイル。

mongodbを開く方法 mongodbを開く方法 Apr 07, 2024 pm 06:15 PM

Linux/macOS の場合: データ ディレクトリを作成し、「mongod」サービスを開始します。 Windows の場合: データ ディレクトリを作成し、Service Manager から MongoDB サービスを開始します。 Docker の場合: 「docker run」コマンドを実行します。他のプラットフォームの場合: MongoDB のドキュメントを参照してください。確認方法: 「mongo」コマンドを実行して接続し、サーバーのバージョンを確認します。

navicat の有効期限が切れた場合の対処方法 navicat の有効期限が切れた場合の対処方法 Apr 23, 2024 pm 12:12 PM

Navicat の有効期限の問題を解決するには、ライセンスを更新する、自動更新を無効にする、Navicat プレミアム エッセンシャルの無料バージョンを使用する、などがあります。

See all articles