React-网易云音乐PC端(四)
推荐页面下的轮播图和热门推荐组件
-
immutable应用在项目中
1.安装immutable库;
2.在reducer文件中通过Map方法将defaultState对象转换为im对象,注意设置数据,获取数据的方法随之改变;
3.优化:全局合并的reducer也包裹成一个im对象,需要用到redux-immutabel库,导出combineReducers函数 -
轮播图
1.使用antd中的走马灯;
2.将轮播图抽出来作为一个组件;
3.useRef的使用:创建一个Ref,获取DOM节点时需要current属性;
4.在style-components中可以写标签属性:a.attrs({})
5.轮播图后面的那张高斯模糊的背景图片:加上参数拼接;
6.组件中用到的回调函数用useCallback做一个包裹:形成记忆,减少组件不必要的刷新 -
热门推荐
1.头部header可以抽成一个公共的组件;
2.子组件向父组件传递信息:父元素传给子元素一个函数,(props中获取),在子组件中调用这个函数,并传递参数;
3.对props传递的参数进行限制:
a.导入对应的库:import PropTypes from 'prop-types';这个库脚手架中已存在,不需额外安装
b.设置函数组件的props:组件名.propTypes={};默认参数的设置:组件名.defaultProps={};
c.设置类组件的props:Static propTypes={};默认参数的设置:Static defaultProps={};
4.useHistoty这个hook,用于创建history对象,history有一个push方法,记录浏览器页面
5.recommend热门推荐部分数据请求,并放入redux(同轮播图获取方式一致)
6.数据在热门推荐组件中的展示
7.优化:a.听歌数字的格式化;b.设置图片尺寸,从服务器获取小尺寸的图片资源