vue dom2級(jí)事件

vue中不能使用dom0級(jí)給dom元素添加點(diǎn)擊事件等,因?yàn)関ue標(biāo)簽可以綁定多個(gè)點(diǎn)擊事件,而dom0級(jí)事件會(huì)進(jìn)行覆蓋,因此vue使用的是dom2級(jí)事件綁定。

結(jié)論:在vue中使用addEventListener進(jìn)行事件綁定

<template>
  <div>
    <button ref="refreshBtn" id="refreshBtn">refresh</button>
  </div>
</template>

<script>
import { onMounted, ref } from "vue";
export default {
  name: "HelloWorld",
  setup() {
    // mounted
    onMounted(() => {
      // 當(dāng)界面掛載出來后就會(huì)自動(dòng)執(zhí)行
        let refreshBtn = document.getElementById("refreshBtn");

      // 安裝命令函數(shù)
      let setCommand = function (button, func) {
        button.addEventListener("click", function () {
          func();
        });
      };

      // 接收對(duì)象
      let refreshBar = {
        refresh: function () {
          debugger;
        },
      };

      // 命令對(duì)象
      let RefreshCommand = function (receiver) {
        return function () {
          receiver.refresh();
        };
      };

      // 設(shè)置命令的接收對(duì)象
      let refreshCommand = RefreshCommand(refreshBar);

      // 安裝命令
      setCommand(refreshBtn, refreshCommand);
    });
  },
};
</script>

<style scoped></style>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容