新建react项目(create-react-app脚手架工具)可以参考:react官网-“get started”-Create React App的例子
在react-redux中使用connect()与componentDidMount()
背景描述在TodoList項目中,我原本使用react-redux的connect()将store的state和dispatch通过两个参数包装在无状态组件TodoListUI上,使其成为聪明的容器组件。但我想使用componentDidMount()发送一个AJAX请求来获取list列表的初始数据,但此时 无状态组件 没有生命周期函数,所以我将 无状态组件 包裹在一个 容器组件TodoList 中,再对TodoList使用connect()连接上store。
Redux进阶(2)Redux-thunk与Redux-saga中间件
使用Redux-thunk中间件实现ajax数据请求
我们之前把异步请求放在TodoList组件的生命周期函数中,当我们放在组件中的逻辑过于复杂的时候就可以使用Redux-thunk将异步请求或者其他比较复杂的逻辑移到action中进行统一管理。
在这里我们先使用中间件,关于“什么是中间件”放到下面进行解释。
react中使用mock.js模拟接口数据
原本从接口获取到数据的流程(完整例子在笔记“redux进阶(1)”中)
在组件中创建一个生命周期函数componentDidMount()。引用 axios 模块,在componentDidMount函数中借助 axios 模块发送ajax请求,使用axios.get("接口路径")来获取某个接口路径下的数据,请求成功后执行then()的回调函数(接收一个参数res表示接收到的数据),请求失败后执行catch()的回调函数
桌面创建list.json文件,并在其中放入一个数组
使用接口地址在**Charles中模拟接口数据,使得发送请求到接口路径时调用我们桌面的list.json文件【使用Charles抓取localhost包需要注意更换url:需要使用http://localhost.charlesproxy.com:3000/访问**】
then()的回调函数中打印出的res中的内容,可得到 res中的data是我们需要的数组,那么我们可以在ajax请求成功时通过then()获取data数据
Mock.js的使用方法
Mock.js
作用:生成随机数据,拦截 Ajax 请求 (并返回数据)
当后端还没开发好某个接口时,前端可以借助 Mock.js 拦截 Ajax 请求 并返回设置好的随机数据。当后端接口开发完成后,只需要改变 Ajax 请求 的接口路径即可。
我们写AJAX请求的时候,正常写,Mock.js会自动拦截的。
官方网站
开发博客项目之接口(2)
4-5 搭建开发环境
从0开始搭建,不使用任何框架
使用nodemon监测文件变化,自动重启node(不需要像之前那样使用node xxx.js来手动重启node)
使用cross-env设置环境变量,兼容mac linux和windows