Vue $refs 减小获取dom消耗

通过前面的文章我们知道了通过$refs是如何获取元素的。其实就是$refs对象中的一个属性指向了创建的元素。

<div ref="divRef" id="divId"></div>

this.$refs.divRef = createElement("div"); 

要获取div元素,我们可以通过document.getElementById("divId") , 也可以直接通过this.$refs.divRef

我们实验一下是否可以减小获取dom的消耗。

<html>
 
<head>
<style type="text/css">

</style>
</head>
 
<body>
   

<div id="testDiv">0</div>

<script>


setTimeout(function(){
    console.log("begin: " + Date.now());
    for(var i=0; i<10000000; i++){
        document.getElementById("testDiv").textContent = i;
 
    }
    console.log("endxx: " + Date.now());
}, 5000);


</script>
 
</body>
</html>

通过getElementById 大约在15秒左右。

<html>
 
<head>
<style type="text/css">

</style>
</head>
 
<body>
   

<script>

var testDiv2 = document.createElement("div");
document.body.appendChild(testDiv2);
testDiv2.textContent = 0;

setTimeout(function(){
    console.log("begin: " + Date.now());
    for(var i=0; i<10000000; i++){        
        testDiv2.textContent = i;
    }
    console.log("endxx: " + Date.now());
}, 5000);


</script>
 
</body>
</html>

通过this.$refs 这种方式大约在14秒左右。两者相差不大。

发布了180 篇原创文章 · 获赞 16 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/liubangbo/article/details/103789633