以上需求均已经实现,结果图以下前端
前端主要使用的是React
、React-Router
、Axios
三项技术构建的Web应用,后端主要使用Flaskreact
主要的难点在前端路由的控制方面,前端路由的答题界面的路由应该是私有的,因此根据React-Router
官方的建议咱们使用Render Props
,对用户权限予以验证,具体的实现以下:ios
import React, {useContext} from 'react' import {Route, Redirect} from 'react-router-dom' import {UserContext} from '../utils/context' function PrivateRoute({component: Component, ...rest}) { const {user} = useContext(UserContext); return ( <Route {...rest} render={props => user !== '' ? ( <Component {...props} /> ) : ( <Redirect to={{ pathname: "/", state: {from: props.location} }} /> ) } /> ); } export default PrivateRoute;
本次结对编程,在队友代码的基础上进行需求的优化,队友的我的项目代码已经设计了UI界面以及登陆按钮,只须要添加注册按钮以及请求便可完成一个页面模板,整体来讲前端的复用性主要在页面的设计上,关于后端由于我的项目本地化处理的缘由,没有复用性
git
经验:个人队友是一个对于前端开发很是有经验的人,所以在结对编程过程当中,队友写出一个登陆页面以后,我模仿他的写法去编写注册页面的代码,对于react等技术也算有一些了解与使用,虽然使用的还不够熟练,但也算是提高了,此外因为没有开发经验,一开始我不了解那些软件开发的架构,看到队友的MVC模式有些不了解,经过百度等途径了解了一下软件架构,为之后的项目开发提供一些经验编程
教训:在开发过程当中一开始咱们两人之间的分工不够明确,虽然经过githup整理上传项目,但仍存在一方出现问题不能及时解决致使拖慢开发进度的问题,在后续的开发过程当中多进行两我的的面对面交流,开发过程一方遇到的问题也能尽快解决后端