react umi+dva基本开发流程(2)

上文中,我们简单介绍了umi的使用规则,项目构建流程。本文我们主要来谈一下dva在umi中如何来使用。

项目开发中,umi如何使用antd这个ui框架。

安装插件umi-plugin-react

yarn add umi-plugin-react  ||  npm install umi-plugin-react

与src同级构建config目录 ,目录中创建config.js文件,写入以下配置

export default {  plugins: [    [      'umi-plugin-react',      {        antd:true,

        dva: true,      },    ]  ],};

使用antd中的组件 例:

import {Button} from 'antd';

以上就是在umi中使用antd这个ui框架。下面我们来说一下如何使用dva。

在src中构建models目录。该目录中存在数据模型,全局模型,所有pages中均可使用模型种的数据。

例如在models中构建info.js 模型。内部代码编写如下:

import * as api from '../until/getpro';  //封装的axio调用接口export default{ //命名空间 namespace:'info', state:{ name:'许凯', age:24, des:"真帅呀!!!", list:[] }, //处理state--同步 reducers:{ change(state,{payload}){ return {...state,...payload} } }, // 异步 // yield表示后面的方法执行完以后 call表示调用一个api接口 // put表示一个派发 effects:{ *getData(payload,{call,put}){ console.log(payload) const result=yield call(api.getProList,payload.payload) console.log(result) yield put({ type:'change', payload:{ list:result.data.data

} }) }}

组件内使用如下:

import {connect} from 'dva'; function Index(props) {  return (   

     

Page index

   

{props.name}

 

{props.age}

 

{props.des}

    {   props.list.map((item)=>{   return(
{item.pname}
)   })   }   
  );}export default connect(state=>state.info)(Index)

以上就是无状态组件中调用dva管理的数据,原理还是依赖于react-redux 通过connect生成容器组件,获取数据。

无状态组件中定义局部状态,可以选择16.8新增的hook来定义,useState定义局部状态,useEffect模拟生命周期。

你可能感兴趣的:(react umi+dva基本开发流程(2))