关于vue @click 和 源生 js click 运行时机问题?

代码如下

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

  <body>
    <div id="app" @click="clicked">
      {{ message }}
    </div>
    <script>
      var app = new Vue({
        el: '#app',
        data: {
          message: 'Hello Vue!',
        },
        mounted() {
          document.querySelector('#app').addEventListener('click', () => {
            console.log('customer clicked');
          });
        },
        methods: {
          clicked() {
            console.log('vue clicked');
          },
        },
      });
    </script>
  </body>
</html>

打印结果为什么是先打印了 vue clicked 之后再打印了customer clicked?
求大佬通俗的解释下~

附上 在线链接
https://jsrun.net/PzUKp/edit?...

阅读 1.7k
1 个回答

谁先绑定的谁先执行,你那个原生绑定都在 mounted 钩子里才执行的,v-on 早就已经执行完了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题