搭建umi基本框架
umi.js脚手架基本搭建 搭建完成后得到下图所示目录结构: 使用命令启动项目
yarn start
- 因为项目默认使用ts和React Hooks
- 没有引入 Dva.js
引入dva.js
找到项目目录下的 .umirc.ts 文件,加入如下配置项
dva: {
immer: true,
hmr: false,
},
在src下新建models文件夹,在pages下新建Demo1文件夹,在Demo1中新建models文件夹,如下图所示:
class组件写新页面
在上文中新建Demo1文件夹下建立 index.js 文件,内容如下:
import React, { Fragment } from 'react';
class Demo extends React.PureComponent {
constructor(props) {
super(props);
}
render() {
console.log(this.props);
return (
<Fragment>
<div>开始配置dva.js </div>
</Fragment>
)
}
}
export default Demo;
定义Dva Models并建立连接
src/pages/Demo1/models 新建文件 DemoModel.js
export default {
namespace: 'firstDemoModel',
state: {
data: [
{ text: 'fighting', value: 'nine' },
],
},
effects: {},
reducers: {
save(state, payload) {
return {
...state,
...payload,
};
},
},
};
输入以上的代码即建立了名称为firstDemoModel的model, 接下来在上文index.js中输入如下的代码建立与model的连接
import {connect} from 'dva'
@connect(({ firstDemoModel}) => ({
firstDemoModel,
}))
class Demo extends React.PureComponent {
@connect为函数装饰必须写在class的前面,在index.js中的render函数中输入如下代码即可打印出在this.props可以访问basicDataModel
完整的Umi配置
修改 .umirc.ts文件夹中配置如下所示
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
routes: [
{ path: '/', component: '@/pages/index' },
],
fastRefresh: {},
ignoreMomentLocale: true,
hash: true,
targets: {
ie: 9,
},
dva: {
immer: true,
hmr: false,
},
});
以上就是利用UmiJs 搭建React框架并配置Dva.js的全部内容 本项目的Gitee地址
参考文档
UmiJs整合 Dva数据流配置 React 官方文档 UmiJs配置
|