问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

constituent, component, conpositon 有什么区别?

发布网友 发布时间:2022-04-26 09:30

我来回答

5个回答

懂视网 时间:2022-05-15 05:25

我开始转向使用PureCompoent是因为它是一个更具性能的Component的版本。虽然事实证明这是正确的,但是这种性能的提高还伴随着一些附加的条件。让我们深挖一下PureComponent,并理解为什么我们应该使用它。

Component和PureComponent有一个不同点

除了为你提供了一个具有浅比较的shouldComponentUpdate方法,PureComponentComponent基本上完全相同。当props或者state改变时,PureComponent将对propsstate进行浅比较。另一方面,Component不会比较当前和下个状态的propsstate。因此,每当shouldComponentUpdate被调用时,组件默认的会重新渲染。

浅比较101

当把之前和下一个的propsstate作比较,浅比较将检查原始值是否有相同的值(例如:1 == 1或者ture==true),数组和对象引用是否相同。

从不改变

您可能已经听说过,不要在propsstate中改变对象和数组,如果你在你的父组件中改变对象,你的“pure”子组件不将更新。虽然值已经被改变,但是子组件比较的是之前props的引用是否相同,而不会进行深度比较。

与此相反,你可以通过使用es6的assign方法或者数组的扩展运算符或者使用第三方库达到不可变性,来返回一个新的对象。

存在性能问题?

比较原始值值和对象引用是低消费操作。如果你有一列子对象并且其中一个子对象更新,对它们的propsstate进行检查要比重新渲染每一个子节点要快的多

其它解决办法

不要在render的函数中绑定值

假设你有一个项目列表,每个项目都传递一个唯一的参数到父方法。为了绑定参数,你可能会这么做:

<CommentItem likeComment={() => this.likeComment(user.id)} />

这个问题会导致每次父组件render方法被调用时,一个新的函数被创建,已将其传入likeComment。这会有一个改变每个子组件props的副作用,它将会造成他们全部重新渲染,即使数据本身没有发生变化。

为了解决这个问题,只需要将父组件的原型方法的引用传递给子组件。子组件的likeComment属性将总是有相同的引用,这样就不会造成不必要的重新渲染。

<CommentItem likeComment={this.likeComment} userID={user.id} />

然后再子组件中创建一个引用了传入属性的类方法:

class CommentItem extends PureComponent {
 ...
 handleLike() {
 this.props.likeComment(this.props.userID)
 }
 ...
}

不要在render方法里派生数据

考虑一下你的配置组件将从一系列文章中展示用户最喜欢的十篇文章。

render() {
 const { posts } = this.props
 const topTen = posts.sort((a, b) => b.likes - a.likes).slice(0, 9)
 return //...
}

每次组件重新渲染时topTen都将有一个新的引用,即使posts没有改变并且派生数据也是相同的。这将造成列表不必要的重新渲染。

你可以通过缓存你的派生数据来解决这个问题。例如,设置派生数据在你的组件state中,仅当posts更新时它才更新。

componentWillMount() {
 this.setTopTenPosts(this.props.posts)
}
componentWillReceiveProps(nextProps) {
 if (this.props.posts !== nextProps.posts) {
 this.setTopTenPosts(nextProps)
 }
}
setTopTenPosts(posts) {
 this.setState({
 topTen: posts.sort((a, b) => b.likes - a.likes).slice(0, 9)
 })
}

如果你正在使用Redux,可以考虑使用reselect来创建"selectors"来组合和缓存派生数据。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

React中生命周期使用详解

React中组件通信使用详解

热心网友 时间:2022-05-15 02:33

constituent, component, conpositon的区别为:指代不同、用法不同、侧重点不同

一、指代不同

1、constituent:构成的。

2、component:组成的。

3、conpositon:构成。

二、用法不同

1、constituent:它跟整体融合在一起而丧失了自身的独立性。

2、component:指一个整体必不可少或固有的部分,强调一个复杂整体中最基本、最简单的元件、元素或成分等。

3、conpositon:composition也可作“构成,成分”解,既可作可数名词,又可作不可数名词。composition还有“混合物,合成物”的意思,是可数名词。

三、侧重点不同

1、constituent:指一个整体的组成部分。

2、component:指某一整体不可少的部分

3、conpositon:做构成成分解。

热心网友 时间:2022-05-15 03:51

component指一个整体的组成部分。
constituent常可与component换用,指某一整体不可少的部分或成分。
但两者之间又有一定区别,怎么解释区别呢,还不好说,我举个例子吧:
比如西瓜由瓜瓤和瓜子组成,那么瓜子和瓜瓤就是COMPONENT, 但是瓜瓤和瓜子又各占一定的分量,这个分量是constituent. 不知道说清楚了没?
而composition做构成成分意思的时候,与component有区别,我也去问了一圈,有一种看法个人觉得还是挺有道理的,component指组成部件,例如瓶子,架子等,composition指具体的内容物和成分,例如
We examined the rock to find out its composition.
我们检验了这一石块,想弄清它的构成成分。

热心网友 时间:2022-05-15 05:26

constituent,译为选民,成份或者作形容词:构成的,选举的
component:译为组件,成份 形容词:组成的,构成的
conpositon,没这个词
应该是compositon吧:作文,作曲;构成;合成物

热心网友 时间:2022-05-15 07:17

constituent 是构成机构、部门等
component 可以区分为组成元素
composition 是指组成物质,是化合物
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
平安银行信用卡长什么样 四川洁净板多少钱一米 现在有一家医院的手术室需要做铅防护,地面需要用硫酸钡水泥,我想问下... 医院墙面防辐射处理多少一平方 炸鸡怎么做才好吃,外酥里嫩(炸鸡怎么才能外脆里嫩又香脆?) 炸鸡怎么做又嫩又好吃? 普渡福建民俗 荷兰共和国的衰亡目录 现在有叉车证好找工作吗 ...新手学叉车证大概多久 持证了新手去工厂好找工作吗 湖南辅导员高级职称公需课如何学 求如月群真全彩漫画 九歌·东君的作品赏析 缅甸还是越南的拖鞋质量好? nbt试剂能把细胞染成什么颜色 湖南省事业单位公需科目拖进度条记分吗 全彩同人志漫画合集 巴厘岛最值得买的东西是什么? 历史上,赵国在长平之战中损失惨重,真的是因为赵括吗? DBY是哪个国家的代码 求接近写实的全彩欧美漫画全集打包,有图例 2012河南专升本答案。 c# 字符串 排序问题 component 是什么意思 大秦帝国之纵横 6国联军出兵函谷关站前动员是那集 推荐几个画风好点的全彩的漫画 80年5元的冠字号有哪些?哪些收藏价值高 北京哪有实验外包或代做实验:IHC 免疫组化 ICC 细胞化学 IF荧光共聚焦 病理组织特殊染色 IF免疫荧光 TUNE 有什么漫画软件可以看全彩漫画 Fipper的品牌使命 姆指和食指分开 那种拖鞋叫什么 金开瑞生物工程有限公司怎么样? 全彩漫画肉祭全集 巴厘岛免税店必买清单都有哪些? component是什么意思? NBT是什么意思? 湖南人才市场公需科目活动人数怎么填 湖南师范大学公需科目怎么下载学习证明 谁有岩土在线的邀请码,麻烦提供一下呗,不胜感激啊,邮箱dby-df@163.com 泰国旅游穿什么衣服 - 信息提示 nbt是什么 ingredient 和component区别 湖南公需科目倍速看被检测作弊怎MB 在缅甸什么款式的拖鞋好卖 Pay by Direct Debit?什么意思?Direct Debit是什么 二抗IgG能检测它的亚型吗 求全彩漫画,耽* 美或百* 合都可以 3D全息展柜有哪些优势 2020湖南公需科目三次考试不及格后能再考吗?