React 元素渲染简单演示

react更新元素渲染:计时器案例

src/index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

function tick(){
  const element=(
    <div>现在是{new Date().toLocaleTimeString()}</div>
  )

  ReactDOM.render(
    element,document.getElementById('example')
  );

}
setInterval(tick,1000);

// If you want your app to work offline and load faster,you can change
// unregister() to register() below. Note this comes with some pitfalls. Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

 

 

以上代码可以改为函数式封装

import React from 'react' Clock(props){
  return(
    <div>现在是{props.date.toLocaleTimeString()}</div>
  )
}

 tick(){
  ReactDOM.render(
    <Clock date={new Date()}/>,document.getElementById('example')
  );
}
setInterval(tick,1)"> Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

 

也可以改为类封装

import React,{ Component } from 'react';

class Clock extends React.Component {

  render(){
    (
      <div>现在是{this.props.date.toLocaleTimeString()}</div>
    )
  }

}

 Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

 

React 只会更新必要的部分
值得注意的是 React DOM 首先会比较元素内容先后的不同,而在渲染过程中只会更新改变了的部分。

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...