# part4-5-homework **Repository Path**: mxydl2009/part4-5-homework ## Basic Information - **Project Name**: part4-5-homework - **Description**: 拉勾前端训练营part4-5作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-07 - **Last Updated**: 2021-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. 通过该项目,请简要说明 typescript 比 javascript 的优势在哪? typescript相比于javascript的优势在于如下几点 - 类型约束:对值使用类型约束,可以在静态编译过程中发现类型相关的错误,从而规避在运行时才发现错误。 - 高级语法:可以使用更高级更简洁的语法来编写代码,通过编译成低版本的JavaScript运行。 2. 请简述一下支付流程 支付流程如下 - 客户端提交订单,发送请求到服务器,服务器返回支付地址,引导客户端跳转到支付地址 - 用户在支付地址支付完成后,支付宝重定向到指定地址,告知用户支付状态,同时,支付宝向服务器发送请求告知服务器支付的状态 - 客户端跳转到支付宝重定向的地址 3. react-redux 的主要作用是什么,常用的 api 有哪些,什么作用? react-redux的主要作用是将redux定义的store数据注入到组件中,包括需要渲染的数据和更新数据的函数。 常用的API如下 - Provider组件:提供共享的store - connect方法:从store中获取数据和方法,注入组件,返回包含数据和方法的高阶组件 - useSelector方法:与connect获取数据的作用一样,即获取组件所需的store中的数据 - useDispatch方法:与connect获取数据更新方法的作用一样,即获取dispatch方法,用于发送action来更新store中的数据。 4. redux 中的异步如何处理 redux中的异步处理流程通常如下: - 在异步操作开始前,发送action,用来表示要发起异步操作,用户界面应该有所提示 - 在异步操作结束后,发送action,用来表示异步操作结束,根据异步操作的结果,对store中的数据和用户界面进行更新 redux中通常使用中间件来进行异步处理,常用的中间件包括redux-thunk, redux-saga等,由于redux-saga的语义更清晰,耦合更宽松,易于维护和测试,所以复杂项目通常会选用redux-saga来进行异步处理。