React+mongodb的使用与配置

这篇文章主要介绍了关于react+mongodb的使用与配置,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

React环境搭建 (一步一步走)

React 基本配置

(React 是一个用于构建用户界面的 JAVASCRIPT 库。React主要用于构建UI,很多人认为 React
  是 MVC 中的 V(视图)。)

虽然网上有很多教程(但是自己搭建会遇到一些坑 所以自己去解决 从中体会到自己的不足)

npm install -g create-react-app  全局安装

create-react-app  react_mongodb  (这个我的项目名)

下面是我的安装过程

41093614-5b46bba86de34_articlex[1].png

4.进入项目 npm start  看到以下效果 说明项目已经搭建成功了

2116975101-5b46bc2286837_articlex[1].png

5.给大家分析一下目录结构 易懂

2091548278-5b46bd7048f7f_articlex[1].png

6.打开webpack配置(npm run eject) 或者自己配置
  运行命令后看到以下目录

735270793-5b46bf489b503_articlex[1].png

redux基本使用

带领大家入门 redux

1> 首先下载  npm i redux –save
  2> 当我们看过redux的例子过后  现在我们把代码拆分

3> 同步异步介绍 (react处理异步需要 redux-thunk插件)

   * 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(, document.getElementById('root'));         }         render()                  // 更新后重新渲染         store.subscribe(render)         // ReactDOM.render(, 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 (                     

hello
{num}

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

登录后复制

react-redux使用 安装npm i react-redux -S(是–save的简写)

  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(                                                       ,                 document.getElementById('root'));             registerServiceWorker();

登录后复制

           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 (                            

hello
{this.props.num}

) } } const mapStatetoProps = (state)=> { return { num: state } } const actionCreators = { addgun, removegun, addgunAsync } // 装饰器的使用 connect 链接过后可以用 this.props 获取 App = connect(mapStatetoProps, actionCreators)(App) export default App; ** 这里是不是感觉比store.subscribe方便一点

登录后复制

2169363067-5b4846bd4f8a4_articlex[1].png

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

登录后复制

react-router4

1302327887-5b484843043d3_articlex[1].png

 *注意点*: 下载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 (                    

关于详情: {this.props.match.params.id}

) } } function home() { return

我的详情

} ReactDOM.render( (

  • 嘻嘻嘻
  • 关于
  • 我的
{/* {Switch} 默认只会匹配第一个 */} {/* match.params.id 取值 */}

{/* */} ), document.getElementById('root')); registerServiceWorker(); *

登录后复制

react-router4与其他版本跳转不一致

            如果使用一下跳转方式 会包错 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 (                                            )                }            }                        export default withRouter(Info);                              后续更新全部!!!!

登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

react-router路由的简单分析

以上就是React+mongodb的使用与配置的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2746269.html

(0)
上一篇 2025年3月8日 03:55:24
下一篇 2025年2月26日 01:45:50

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 深入理解Node的HTTP核心模块

    这篇文章主要介绍了关于深入理解node的http核心模块,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 HTTP 创建一个服务器 var http = require(‘http’);var fs = require(‘fs…

    编程技术 2025年3月8日
    200
  • React实现的抛物线动画

    这篇文章主要介绍了关于react实现的抛物线动画,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 一个简单通用的 React 抛物线动画 Usage import { parabola } from “./parabola”.…

    2025年3月8日
    200
  • 对node.js的调试方法的简单分析

    这篇文章主要介绍了关于对node.js的调试方法的简单分析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 调试能力是编程的基本素质之一,快速的定位bug可以让开发者到点下班,免于加班之苦。众所周知JavaScript调试是非…

    2025年3月8日 编程技术
    200
  • React的使用:react框架的五大特点

    这篇文章给大家介绍的内容是关于react的使用:react框架的五大特点,有着一定的参考价值,有需要的朋友可以参考一下。 01. React 出现的时代背景 世界上的事情都有因才有果,一个框架的出现也必然离不开特定的时代背景。而对于 Rea…

    编程技术 2025年3月8日
    200
  • react的使用: React如何渲染UI

    这篇文章给大家介绍的内容是关于react的使用: react如何渲染ui,有着一定的参考价值,有需要的朋友可以参考一下。 01. React 渲染界面的方式 在 React 等大型前端框架出现之前,我们渲染 UI 元素的方式是使用字符串模板…

    编程技术 2025年3月8日
    200
  • React的使用:React组件内部的状态管理

    这篇文章给大家介绍的内容是关于React的使用:React组件内部的状态管理,有着一定的参考价值,有需要的朋友可以参考一下。 在本文中,我们将把目光聚焦于 React 组件内部的状态管理,去认识或重新思考以下三个核心概念: props 和 …

    编程技术 2025年3月8日
    200
  • React中动画不生效的原因分析

    这篇文章给大家介绍的内容是关于react中动画不生效的原因分析,有着一定的参考价值,有需要的朋友可以参考一下。 项目中需要做这样的一个组件根据不同的数值,这个蓝色的条显示的宽度不同。这个其实很简单,我只要根据数据动态的计算它的宽度,生成节点…

    编程技术 2025年3月8日
    200
  • React Event事件注册的实现

    这篇文章给大家介绍的内容是关于react event事件注册的实现,有着一定的参考价值,有需要的朋友可以参考一下。 React 元素的事件处理和 DOM元素的很相似。但是有一点语法上的不同: React事件绑定属性的命名采用驼峰式写法,而不…

    2025年3月8日
    200
  • Koa中发送响应的一种简单的方式

    本篇文章给大家分享的是关于koa中发送响应的一种简单的方式,内容很不错,有需要的朋友可以参考一下,希望可以帮助到大家。 背景 最近做了很多node的后台项目,写了很多接口,但是发现随着接口的慢慢增多,需要写越来越来越多类似于下面这种代码。 …

    编程技术 2025年3月8日
    200
  • 对React事件系统的解析

    这篇文章给大家分享的内容是关于对react事件系统的解析,有一定的参考价值,有需要的朋友可以参考一下。 一 前言 React事件系统有两类:合成事件和原生事件。在写React组件是我们很容易绑定一个合成事件,但是在一个组件里面是没有办法去绑…

    2025年3月8日
    200

发表回复

登录后才能评论