小王:嘿,小李,我最近在做一个科研管理系统的前端部分,遇到了一些问题,你能帮我解决一下吗?
小李:当然可以,说说看,遇到了什么问题?
小王:首先,我们需要一个用户界面来展示科研项目的列表。我想知道如何使用React来实现这个功能。
小李:好的,我们可以从创建一个简单的React组件开始。你有安装React和React-DOM库吗?
小王:安装了。
小李:那我们就先创建一个名为`ProjectList.js`的文件,用来展示项目列表。
// ProjectList.js import React from 'react'; const ProjectList = ({ projects }) => { return ( 科研项目列表 {projects.map((project) => ( ))}
);
};
export default ProjectList;
]]>
小王:看起来不错!那我们怎么把数据传递给这个组件呢?
小李:我们可以创建一个父组件,比如`App.js`,然后在这个组件里定义一个状态来存储项目列表的数据,再将这些数据作为属性(props)传递给`ProjectList`组件。
// App.js import React, { useState } from 'react'; import ProjectList from './ProjectList'; const App = () => { const [projects] = useState([ { id: 1, name: '项目A' }, { id: 2, name: '项目B' }, { id: 3, name: '项目C' } ]); return (
);
};
export default App;
]]>
小王:太棒了!这样我们就有了一个基本的科研项目列表展示页面。接下来我们还需要添加搜索功能,你觉得怎么做比较好呢?
小李:我们可以增加一个输入框,让用户输入关键字进行搜索。当输入框的值发生变化时,我们可以过滤出符合条件的项目。
// ProjectList.js (修改版) import React, { useState } from 'react'; const ProjectList = ({ projects }) => { const [searchTerm, setSearchTerm] = useState(''); const filteredProjects = projects.filter((project) => project.name.toLowerCase().includes(searchTerm.toLowerCase()) ); return ( setSearchTerm(e.target.value)} /> 科研项目列表 {filteredProjects.map((project) => ( ))}
);
};
export default ProjectList;
]]>
小王:哇,这样就更完美了!感谢你的帮助,我现在对科研管理系统前端部分的实现有了更清晰的认识。
本站部分内容及素材来源于互联网,如有侵权,联系必删!