操作render执行有哪些方法

这次给大家带来操作render执行有哪些方法,操作render执行的注意事项有哪些,下面就是实战案例,一起来看一下。

我们都知道Render在组件实例化和存在期时都会被执行。实例化在componentWillMount执行完成后就会被执行,这个没什么好说的。在这里我们主要分析存在期组件更新时的执行。

存在期的方法包含:

– componentWillReceiveProps

– shouldComponentUpdate

– componentWillUpdate

– render

– componentDidUpdate

这些方法会在组件的状态或者属性发生发生变化时被执行,如果我们使用了Redux,那么就只有当属性发生变化时被执行。下面我们将从几个场景来分析属性的变化。

首先我们创建了HelloWorldComponent,代码如下所示:

import * as React from "react";class HelloWorldComponent extends React.Component {  constructor(props) {    super(props);  }  componentWillReceiveProps(nextProps) {    console.log('hello world componentWillReceiveProps');  }  render() {    console.log('hello world render');    const { onClick, text } = this.props;    return (          );  }}HelloWorldComponent.propTypes = {  onClick: React.PropTypes.func,};export default HelloWorldComponent;

登录后复制

AppComponent组件的代码如下:

class MyApp extends React.Component {   constructor(props) {    super(props);    this.onClick = this.onClick.bind(this);  }  onClick() {    console.log('button click');    this.props.addNumber();  }  render() {    return (          )  }}const mapStateToProps = (state) => {  return { count: state.count }};const mapDispatchToProps = {  addNumber};export default connect(mapStateToProps, mapDispatchToProps)(MyApp);

登录后复制

这里我们使用了Redux,但是代码就不贴出来了,其中addNumber方法会每次点击时将count加1。

这个时候当我们点击button时,你觉得子组HelloWorldComponent的render方法会被执行吗?

操作render执行有哪些方法 

如图所示,当我们点击button时,子组件的render方法被执行了。可是从代码来看,组件绑定的onClick和text都没有发生改变啊,为何组件会更新呢?

如果在子组件的componentWillReceiveProps添加这个log:console.log(‘isEqual’, nextProps === this.props); 输出会是true还是false呢?

操作render执行有哪些方法 

是的,你没有看错,输出的是false。这也是为什么子组件会更新了,因为属性值发生了变化,并不是说我们绑定在组件上的属性值。每次点击button时会触发state发生变化,进而整个组件重新render了,但这并不是我们想要的,因为这不必要的渲染会极其影响我们应用的性能。

在react中除了继承Component创建组件之外,还有个PureComponent。通过该组件就可以避免这种情况。下面我们对代码做点修改再来看效果。修改如下:

class HelloWorldComponent extends React.PureComponent

登录后复制

这次在点击button时发生了什么呢?

操作render执行有哪些方法
  

虽然componentWillReceiveProps依然会执行,但是这次组件没有重新render。

所以,我们对于无状态组件,我们应该尽量使用PureComponent,需要注意的是PureComponent只关注属性值,也就意味着对象和数组发生了变化是不会触发render的。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

右侧带索引通讯录实现(附代码)

vue-ssr静态网站生成器VuePress使用详解

以上就是操作render执行有哪些方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2766473.html

(0)
上一篇 2025年3月8日 11:14:40
下一篇 2025年2月20日 03:55:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue render开发实例详解

    这次给大家带来vue render开发实例详解,vue render开发的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 在使用Vue进行开发的时候,大多数情况下都是使用template进行开发,使用template简单、方便、快捷…

    编程技术 2025年3月8日
    200
  • vue里$emit有哪些用法

    这次给大家带来vue里$emit有哪些用法,vue里$emit使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1、父组件可以使用 props 把数据传给子组件。 2、子组件可以使用 $emit 触发父组件的自定义事件。 vm.$em…

    编程技术 2025年3月8日
    200
  • JS几种数组遍历方法总结及对比

    这次给大家带来JS几种数组遍历方法总结及对比,JS几种数组遍历方法总结及对比的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比 属于同一个系列,本文继续分析JS中几种常用的数组遍历…

    2025年3月8日
    400
  • vue select组件开启与禁用方法详解

    这次给大家带来vue select组件开启与禁用方法详解,vue select组件开启与禁用的注意事项有哪些,下面就是实战案例,一起来看一下。 业务:消息推送方式有两种,为“微信”和“邮件”,微信发送时需要选择“要发送的应用程序”,邮件发送…

    2025年3月8日
    200
  • Js基础算法有哪些

    这次给大家带来Js基础算法有哪些,使用Js基础算法的注意事项有哪些,下面就是实战案例,一起来看一下。 素数 Q:你将如何验证一个素数? A:一个素数只能被它自己和1整除。所以,我将运行一个while循环并加1。(看代码示例,如果你无法理解,…

    编程技术 2025年3月8日
    200
  • vue下拉列表实现方法

    这次给大家带来vue下拉列表实现方法,vue下拉列表实现的注意事项有哪些,下面就是实战案例,一起来看一下。 喜欢的请反手来个star,有issue的欢迎提出 安装 cnpm install vue-droplist –save 登录后复制…

    2025年3月8日
    200
  • 热模块替换有哪几种实现方法

    这次给大家带来热模块替换有哪几种实现方法,热模块替换的注意事项有哪些,下面就是实战案例,一起来看一下。 稍微研究了一下,发现在angular/cli创建的项目中,实现这个不算太难,步骤如下: 1、首先创建一个src/environments…

    编程技术 2025年3月8日
    200
  • JS访问DOM对象选中节点方法

    这次给大家带来JS访问DOM对象选中节点方法,JS访问DOM对象选中节点的注意事项有哪些,下面就是实战案例,一起来看一下。 一 介绍 使用getElementById()方法来访问指定id的节点,并用nodeName属性、nodeType属…

    2025年3月8日
    200
  • 遍历DOM文档树有哪些方法

    这次给大家带来遍历DOM文档树有哪些方法,遍历DOM文档树的注意事项有哪些,下面就是实战案例,一起来看一下。z 一 介绍 遍历文档树通过使用parentNode属性、firstChild属性、lastChild属性、previousSibl…

    2025年3月8日
    200
  • CDN优化首屏加载方法详解

    这次给大家带来CDN优化首屏加载方法详解,CDN优化首屏加载的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 作为一个网站应用,加载速度是非常重要的。加载速度,一个是程序的合理安排,如以组件按需加载,一个是js、css等资源的异步加…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论