关于项目中用到的技术栈的总结

在使用dva打包的时候本地开发由于没有对后端接口进行代理,导致返回回来的content-type值为html/text,然后ajax请求后端出现 Sorry, we need js to run correctly! ? 参考 解决方案

 

1:ReRes使用

chrome代理的一款工具

If URL match: 要代理环境的资源地址

Response:  本地打包之后的地址

2: redux-actions 

createAction 可以接受三个参数 

 @param type action的类型

 @param actionCreator 需要创建的action函数

 @param metaCreator action的属性

 @returns {Function}

暂时在项目中就用到了type这个参数具体代码如下

在action.js定义

export const ACIONT_CREATE = "ACIONT_CREATE"; //定义一个type变量

export actionCreate = createAction(ACTION_CREATE);

然后在actionCreator.js里面将跟后端交互的异步数据或者页面上的同步数据通过dispatch这个action

import { actionCreate } from "./action.js";

const getData = (param) => async (dispatch) => {

// request 封装的请求数据方法

const data = request({ api: "xxx' });

dispatch(actionCreate(data));

}

在reducer里面处理Action

redux-actions 里面有handleAction, handleActions来处理不同的action

普通的处理action方法要写太多的switch case语句,比较繁琐

handleActions采用了类似于对象的写法,他接收两个参数  初始的状态值跟包含着所有Action的值

import { ACIONT_CREATE } from './actions'; 

export default handleActions(

{

   [ACIONT_CREATE]: (state, action) => {

    return { ...state, ...action.payload };

  },

},

{ data: [] }

);

 

你可能感兴趣的:(关于项目中用到的技术栈的总结)