文件目录
正常版
|— container
|— entity // 存储常量
|— hooks // 各种自定义的 hooks
|— useHooks1.js // hooks示例1
|— useHooks2.js // hooks示例1
|— index.js // hooks的主要出口
|— handler // 转换函数,以及不需要 hooks 的事件处理函数
|— handler1.js
|— handler2.js
|— index.js // handle的主要出口
|— component //组件
|— index.js
|— index.less
|— index.js // 主文件,只保留实现步骤
|— index.css // css 文件
简化版
|— container
|— entity // 存储常量
|— hooks.js // 各种自定义的 hooks
|— handler.js // 转换函数,以及不需要 hooks 的事件处理函数
|— component // 子组件
|— handle.js
|— hooks.js
|— index.js
|— index.less
|— index.js // 主文件,只保留实现步骤
|— index.css // css 文件
主文件代码内容
主文件只保留业务步骤
- 对 list 数据的操作
- UI 渲染 ```javascript import React, { useState, useEffect } from ‘react’; import PropTypes from ‘prop-types’; import { Row, Select, } from ‘antd’; import { onChangeHandler } from ‘./handler’; import { useList } from ‘./hooks’; import Service from ‘@/services’;
const Demo = ({
onChange,
value,
version,
}) => {
// list 状态的操作,其中有搜索改变 list
const [originList, list, onSearchHandler] = useList(version);
// UI 组件渲染
return (
export default Demo;
<a name="samUO"></a>
### handle.js文件内容
```javascript
// 事件 handler
export const onChangeHandler = (originList, data, onChange) => {
const val = originList.find(option => (option.id === data.value));
const item = { ...val, value: val.code, label: val.name };
onChange(item);
};