React 系列四|React render VS 原生js渲染

Posted 学习之露

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React 系列四|React render VS 原生js渲染相关的知识,希望对你有一定的参考价值。

这是React系列四,这节写一下react render和原生的渲染区别

React render

 
   
   
 
  1. let count = 0;

  2. function App() {

  3. return (

  4. <div className="App">

  5. <h1>React rendering</h1>

  6. <div>

  7. React

  8. rendering只会重新渲染变换的DOM,没有变换的DOM不会重绘,所以我没有重绘

  9. </div>

  10. <div>我重绘了{count}</div>

  11. </div>

  12. );

  13. }


  14. const rootElement = document.getElementById("root");

  15. setInterval(() => {

  16. ReactDOM.render(<App />, rootElement);

  17. count++;

  18. }, 1000);

在线demo:https://codesandbox.io/s/2z3n4l54yr 效果图如下:

原生JS渲染

 
   
   
 
  1. let count = 0;

  2. let template = document.getElementById("template").innerhtml;

  3. setInterval(() => {

  4. Mustache.parse(template);

  5. let rendered = Mustache.render(template, { count: count++ });

  6. document.getElementById("root").innerHTML = rendered;

  7. }, 1000);

在线demo:https://codesandbox.io/s/kyplp589o

效果图如下:

总结,react只会重绘变化的节点,原生JS会全部重绘所有节点。所以react的这种方式会大大提高效率。


以上是关于React 系列四|React render VS 原生js渲染的主要内容,如果未能解决你的问题,请参考以下文章

React Native——PureComponent VS Component

[React 基础系列] React 中的 元素 vs 组件

React Native(四)自定义Header和Footer组件

React 源码分析:调用ReactDOM.render后发生了什么

[React 基础系列] 受控表单 vs 不受控表单

React 系列导航