nextTick的测试题-您可以来试一试

239 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情

这篇文章是我从其他平台搬运来的(是我原创的)。

背景

nextTick是vue面试中高频考点。 有这么几个问题:

  1. nextTick的作用
  2. nextTick的工作原理
  3. nextTick和Promise的关系
  4. this.数据项=新值 背后做了什么?
  5. Tick这个单词是什么意思?如何理解?

简单测试

下面有一个份初始代码,你可以复制到本地,直接打开运行。

<!DOCTYPE html>
<html lang="en">
<head>  
    <meta charset="UTF-8">  
</head>
<body>  
<div id="app">      
    <div id="div">{{a}}</div>      
    <button @click="btn">btn</button>
</div>  
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script>  
<script>    
var vm = new Vue({
    el:"#app",
    data:{ a :1 },
    methods: {
        btn() {
            this.a = 2
            const div = document.getElementById('div')
            this.$nextTick(() => {
                console.log('nextTick', div.innerHTML)
            })          
            console.log(div.innerHTML)
        }
    } 
})
</script>
</body>
</html>

问题是:点击了按钮之后,输出的顺序和结果是什么?

这应该难不到你吧?

答案是:1;nextTick 2;  

如果你答不对,那你不用继续往下做题了。😂

进阶题目

好了,下面类似的题有7道,为了节省代码,我只给出了btn()中的部分。

题目1

image.png

题目2

image.png

题目3

image.png

题目4

image.png

题目5

image.png

题目6

image.png

题目7

image.png

如果你能很清楚的答出来,就请直接拉到底部,留言给我,让我膜拜一下。要是你有疑惑,或者不太会。可以看这里