如果只是用JS去渲染动画效果而不是内容的话,对SEO是没有影响,甚至还有好处的,因为适当的JS动画可以增强用户的体验,而用户体验反馈是目前百度对SEO判断的一个关键因素,所以JS对SEO有好的地方,也有不好的地方,看怎么使用JS了。
react默认情况下,只要父组件的状态改变了,不管子组件是否依赖这个状态,子组件都会重新渲染。
那么如果我们想要实现子组件所依赖的状态没有发生改变,那子组件就不重新渲染,该怎么做呢?
一般情况下我们对class组件做优化,都是在shouldComponentUpdate这个生命周期里面做相应的判断来确认是否需要重新渲染,以达到优化的效果。
后来React为class组件提供了pureComponent来实现这一效果。pureComponent可以自动执行shouldComponentUpdate函数,当组件要更新的时候,会对传入的props和state进行一次浅比较,如果比较出来是一致的,就不进行组件更新。
注意 :这里是进行的浅比较,当props是对象的时候,pureComponent没法做判断,会自动认为是不一致的,从而进行比较。所以在使用pureComponent的时候,应避免传入的状态是对象的情况。
对于函数式组件,react也提供了react.memo的形式来做优化处理。
React.memo只检查props的变更,默认情况下,如果传入的是对象的形式,React.memo只做浅比较,如果想要做复杂的比较的话,可以通过第二个参数传入具体的比较规则。
注意:这里的areEqual判断的结果跟class组件的shouldComponentUpdate判断返回的结果是相反的。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)