美文网首页React
react render 渲染函数

react render 渲染函数

作者: 暴躁程序员 | 来源:发表于2023-10-09 11:21 被阅读0次

一、render 函数的渲染过程

  1. 在 render 函数中编写 JSX 模板
render() {
  return (
    <>
      <div style={{color: "red"}}>
          <h1> 父组件 </h1>
          <div> hello world </div>
      </div>
    </>
  );
}
  1. jsx 模板通过 babel 编译成 createElement 对象用于创建虚拟dom元素
React.createElement(
  "div",
  {
    style: { color: "red" },
  },
  React.createElement("h1", null, "父组件"),
  React.createElement("div", null, "hello world")
);
  1. 将虚拟dom元素转化成真实DOm元素

二、类、函数组件中的 render 函数

  1. 在类组件中的 render 函数
import React, { Component } from "react";

class Test extends Component {
  constructor(props) {
    super(props);
    this.state = {};
  }
  render() {
    console.log("render 函数");
    return (
      <>
        <div>hello world</div>
      </>
    );
  }
}
export default Test;
  1. 在函数组件中,函数组件的 render 函数是函数本身
function Test(props) {
  console.log("render 函数");
  return (
    <>
      <div>hello world</div>
    </>
  );
}
export default Test;

三、类、函数组件 render 函数的执行时机

1. 在函数、类组件创建时执行
2. 在函数、类组件的 props、state 状态更新时执行 
  1. 在父组件中,实现类组件的 state 状态变更
import React, { Component } from "react";
import OptimizeChildView from "./OptimizeChildView"
class Test extends Component {
  constructor(props) {
    super(props);
    this.state = {
        num: 1
    };
    this.changeNum = this.changeNum.bind(this)
  }
  render() {
    console.log("父组件 render 函数");
    return (
      <>
        <h1>父组件</h1>
        <div>{this.state.num}</div>
        <button onClick={this.changeNum}>改变子组件 props</button>
        <hr />
        <OptimizeChildView num={this.state.num}/>
      </>
    );
  }
  changeNum(){
    this.setState({
        num: this.state.num + 1
    })
  }
}
export default Test;
  1. 在子组件中,实现函数组件的props、state状态变更
import React from "react";
import { useState } from "react";
function Test(props) {
  console.log("子组件 render 函数");
  const [count, setCount] = useState(100);
  return (
    <>
      <h1>子组件</h1>
      <div>props.num:{props.num}</div>
      <div>state.num:{count}</div>
      <button onClick={()=>{setCount(count+1)}}>改变函数组件 state</button>
    </>
  );
}
export default Test;

相关文章

  • react 基础知识

    生命周期 旧 初始化阶段 由React.render 触发 -- 初次渲染 constructor() 构造函数...

  • 深入理解react笔记

    1. render函数没有渲染的作用,只是将jsx转译成一个react.createElement函数。 2.st...

  • React 文档再学习 2 增加交互

    渲染(Render)和提交(Commit) 组件展示在页面之前,须有React 渲染 (Render)。可以如此想...

  • React手记

    React手记 1、 2、React元素渲染 React元素渲染是通过方法ReactDOM.render(elem...

  • props,state和render的关系

    1、当组件的state或者props发生改变的时候,render函数就会重新执行 react数据变化页面重新渲染 ...

  • 笔记

    组件里面方法函数内部可以写return标签,在里面render引用渲染模板 react的map函数与es5的map...

  • React源码03 - React 中的更新

    03 - React 中的更新 React 中创建更新的方式:初次渲染:ReactDOM.render、React...

  • html-笔记1

    a标签在新页面打开网址 {title} react&html:render函数渲染后,若html节点中包含一个有...

  • 渲染函数(render)

    render 函数作用 render 函数 跟 template 一样都是创建 html 模板的,但是有些场景中用...

  • Jinja2模版

    1.渲染模版函数(render_template)

网友评论

    本文标题:react render 渲染函数

    本文链接:https://www.haomeiwen.com/subject/brsibdtx.html