<!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 能夠看到html
總共用了38.1msvue
而用原生的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> </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>
用時多少呢?jquery
僅僅只有 9.8ms 哦,
固然vue的優點在於mvvm的方式不能只經過這一項就說vue很差。
這個數據僅供參考babel
咱們再來看下jquerymarkdown
<!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>
11.8ms 能夠說和原生js 很接近了app
主要來看下reactdom
<!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>
164msmvvm
比vue 的38ms幾乎多了4倍!ide
結論:
單從網頁引入的方式來看
耗費時間 是 react>vue>jquery>js 的