react实现五星评价的方法:1、设置五个元素,根据评分给不同的样式,实现代码如“starNum:['star0','star0','star0','star0','star0']...”;2、设置两个元素,根据评分设置子元素的宽度来遮挡父元素的背景图,实现代码如“ let num=(Math.round(this.props.star)/2)...”。
本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。
react怎么实现五星评价?
封装react组件:显示五星评价
两种简单的方式根据类似3.7和7.8这种评分显示五星评价
封装成react组件,使用时直接引用即可
第一种思想:设置五个元素,根据评分给不同的样式;第二种思想:设置两个元素,父元素给没颜色的五角星,子元素给有颜色的五角星,根据评分设置子元素的宽度来遮挡父元素的背景图
方法一:根据不同的评分设置不同的css样式
三张背景图:star0.png,star1.png
,star2.png
1)css代码:样式可以按照自己的需求修改
.star{ display: inline-block; }.star>span{ display: inline-block; width: 10px; height: 10px; background-size: 10px 10px; }.star0{ background-image: url(img/star0.png); }.star1{ background-image: url(img/star1.png); }.star2{ background-image: url(img/star2.png); }
2)组件js代码:
import React,{Component} from 'react'class Star extends Component{ constructor(props){ super(props); this.state={ starNum:['star0','star0','star0','star0','star0'] //设置默认背景图 } } componentDidMount(){ this.getStar(Math.round(this.props.star)/2+1); //将传过来的类似7.3数字进行四舍五入再除2,得到的是类似2,3.5,6这种值 } getStar(num){ let newStar = this.state.starNum.map((item)=>{ //当num=3.5时遍历后newStar数组变成['star2','star2','star2','star1','star0','star0'] --num; return num>=1?'star2':((num>0)?'star1':'star0'); //两次三目运算 }) this.setState({ starNum:newStar //设置state为遍历后的新数组 }) } render(){ return (<span className="star"> { this.state.starNum.map((item, index)=>{ return <span className={item} key={index}></span> }) } </span>) } } export default Star;
3)在其他组件中调用Star组件并传参:
<Star star={4} />
页面显示为:
<em id="__mceDel"><em id="__mceDel"><Star star={7.3} /></em></em>
页面显示为:
这种方法需要少量的计算。
方法二:利用子元素的宽度将父元素进行遮挡
父元素背景图为无色五角星,子元素背景图为有色五角星
背景图:
css代码:
.newstar ul{ background-image: url(component/img/ico.png); }.newstar ul li{ height: 60px; background: url(component/img/ico.png) left -62px; }
组件js代码:
import React,{Component} from 'react'class Star extends Component{ render(){ let num=(Math.round(this.props.star)/2)*20+'%'; //根据评分计算子元素的宽度 return (<div className="newstar"> <ul> <li style={{width:num}}></li> </ul> </div>) } } export default Star;
3)调用并传参
<Star star={4} /> 页面显示为:
这种方式需要父和子元素的背景图大小完全一样,并且要精确计算五角星个数对应的子元素宽度
推荐学习:《react视频教程》
以上是react怎么实现五星评价的详细内容。更多信息请关注PHP中文网其他相关文章!

使用ID选择器在CSS中并非固有地不好,但应谨慎使用。1)ID选择器适用于唯一元素或JavaScript钩子。2)对于一般样式,应使用类选择器,因为它们更灵活和可维护。通过平衡ID和类的使用,可以实现更robust和efficient的CSS架构。

html5'sgoalsin2024focusonrefinement和optimization,notnewfeatures.1)增强performandemandeffifice throughOptimizedRendering.2)risteccessibilitywithrefinedibilitywithRefineDatientAttributesAndEllements.3)expliencernsandelements.3)explastsecurityConcerns,尤其是withercervion.4)

html5aimedtotoimprovewebdevelopmentInfourKeyAreas:1)多中心供应,2)语义结构,3)formcapabilities.1)offlineandstorageoptions.1)html5intoryements html5introctosements introdements and toctosements and toctosements,简化了inifyingmediaembedingmediabbeddingingandenhangingusexperience.2)newsements.2)

IDsshouldbeusedforJavaScripthooks,whileclassesarebetterforstyling.1)Useclassesforstylingtoallowforeasierreuseandavoidspecificityissues.2)UseIDsforJavaScripthookstouniquelyidentifyelements.3)Avoiddeepnestingtokeepselectorssimpleandimproveperformance.4

classSelectorSareVersAtileAndReusable,whileIdSelectorSareEctorSareEniqueAndspecific.1)useclassSelectors(表示)

IDSareuniqueIdentifiersForsingLelements,而LileclassesstyLemultiplelements.1)useidsforuniquelementsand andjavascripthooks.2)useclassesforporporporblesable,flexiblestylestylestylinglingactossmultiplelements。

使用仅类选择器可以提高代码的重用性和可维护性,但需要管理类名和优先级。1.提高重用性和灵活性,2.组合多个类创建复杂样式,3.可能导致冗长类名和优先级问题,4.性能影响微小,5.遵循最佳实践如简洁命名和使用约定。

ID和class选择器在CSS中分别用于唯一和多元素的样式设置。1.ID选择器(#)适用于单一元素,如特定导航菜单。2.Class选择器(.)用于多元素,如统一按钮样式。应谨慎使用ID,避免过度特异性,并优先使用class以提高样式复用性和灵活性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver CS6
视觉化网页开发工具

Atom编辑器mac版下载
最流行的的开源编辑器