文件目录
正常版
|— 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// 事件 handlerexport 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);};
