vue react 與原生 js jquery 渲染時間簡單對比

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./js/vue.js"></script>
</head>

<body>

    <div id="app">
        <ul>
            <li v-for="item in arrayData">{{item}}</li>
        </ul>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: () => ({
                arrayData: ["e1", "e2", "e3", "e4"]
            })
        })
    </script>
</body>

</html>

vue 下載到了本地 ,那麼渲染頁面用了多長時間呢?
利用谷歌performance 可以看到

vue  react  與原生 js jquery  渲染時間簡單對比

總共用了38.1ms

而用原生的js 達到同樣效果

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <ul id="ul">

        </ul>
    </div>
    <script>
        var fragement = document.createDocumentFragment();
        var arrayData = ["e1", "e2", "e3", "e4"];
        for (var item in arrayData) {
            var li = document.createElement('li');
            li.innerText = arrayData[item];
            fragement.appendChild(li);
        }
        document.getElementById('ul').appendChild(fragement);
    </script>
</body>

</html>

用時多少呢?

vue  react  與原生 js jquery  渲染時間簡單對比

僅僅只有 9.8ms 哦,
當然vue的優勢在於mvvm的方式不能只通過這一項就說vue不好。
這個數據僅供參考

我們再來看下jquery

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <ul id="ul">

        </ul>
    </div>
    <script src="./js/jquery3.4.1.js"></script>
    <script>
        $(function () {
            var arrayData = ["e1", "e2", "e3", "e4"];
            var html = ""
            arrayData.forEach((item) => {
                html += "<li>" + item + "</li>"
            });
            $("#ul").append(html);
        });
    </script>
</body>

</html>

vue  react  與原生 js jquery  渲染時間簡單對比

11.8ms 可以說和原生js 很接近了

主要來看下react

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
        //爲了公平將資源下載到了本地
        <!--
            <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
        -->
    <script src="./js/react.16.8.6.js"></script>
    <script src="./js/reactDom16.8.6.js"></script>
    <!-- 生產環境中不建議使用 -->
    <script src="./js/babel.min.js"></script>
</head>

<body>
    <div id="example"></div>
    <script type="text/babel">
         var arrayData = ["e1", "e2", "e3", "e4"];
        ReactDOM.render(
            arrayData.map((item,key)=>{
                return <li key={key}>{item}</li>
            }),
            document.getElementById('example')
        );
        </script>
</body>

</html>

vue  react  與原生 js jquery  渲染時間簡單對比

164ms

比vue 的38ms幾乎多了4倍!

結論:
單從網頁引入的方式來看

耗費時間 是 react>vue>jquery>js 的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章