{ let la..." />
    1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【Vue.js 入門到實(shí)戰(zhàn)教程】04-Vue.js 中事件監(jiān)聽和異步處理的實(shí)現(xiàn)示例

        共 1648字,需瀏覽 4分鐘

         ·

        2020-11-19 03:40

        來(lái)源 |?https://xueyuanjun.com/post/21920


        我們?cè)谏掀坛讨袨榘粹o元素添加事件監(jiān)聽函數(shù)是通過(guò)傳統(tǒng)的 JavaScript DOM 編程方式實(shí)現(xiàn)的:
        document.querySelector('#button').addEventListener('click', () => {    let language = document.querySelector('#input');    app.languages.push(language.value);  // 將輸入語(yǔ)言添加到模型數(shù)據(jù)數(shù)組    language.value = '';  // 清空輸入框});

        實(shí)際上,Vue.js 框架為這種事件監(jiān)聽和處理提供了專門的語(yǔ)法,我們可以在 HTML 元素中通過(guò) v-on 指令來(lái)監(jiān)聽對(duì)應(yīng)的事件,如果是按鈕點(diǎn)擊事件的話就是 v-on:click,然后在屬性值中設(shè)置對(duì)應(yīng)的事件處理函數(shù):

        Web 編程語(yǔ)言:
        • {{ index }}: {{ language }}

        我們可以在 Vue 對(duì)象實(shí)例中新增 methods 屬性來(lái)定義這個(gè)事件處理函數(shù):

        var app = new Vue({    el: '#app',    data: {        languages: [            'PHP',            'JavaScript',            'Python',            'Golang',            'Java'        ]    },    methods: {        addLanguage() {            let language = document.querySelector('#input');            this.languages.push(language.value);            language.value = '';        },    }});

        由于對(duì) addLanguage 函數(shù)的調(diào)用是異步操作,在執(zhí)行它時(shí),Vue 對(duì)象已經(jīng)完成實(shí)例化了,因此,可以通過(guò) this 來(lái)訪問(wèn) Vue 實(shí)例。

        另外,v-on:click 可以被簡(jiǎn)寫為?@click(即將 v-on:?替換成?@),功能是完全一樣的:

        我們還可以通過(guò)引入模型綁定來(lái)讓上述新增列表元素代碼的實(shí)現(xiàn)更加 Vue Style:

        Web 編程語(yǔ)言:
        • {{ index }}: {{ language }}

        這里,我們?nèi)コ税粹o元素,改為在 input 元素上監(jiān)聽鍵盤的回車事件(keyup 表示鍵盤按鍵后抬起,enter 表示按下的是回車鍵)以簡(jiǎn)化流程。對(duì)應(yīng)的 JavaScript 代碼如下:

        刷新頁(yè)面,在輸入框輸入「Ruby」并回車,可以看到和之前一樣的新增列表元素效果:

        顯然,使用事件監(jiān)聽的方式異步處理新增列表元素操作要比之前的實(shí)現(xiàn)更好,避免了在組件初始化之前加載一堆函數(shù),代碼也更優(yōu)雅,Vue.js 還封裝了常見的鍵盤和鼠標(biāo)事件,這樣就不需要編寫一大堆分支語(yǔ)句判斷邏輯,提升了編碼效率和體驗(yàn)。

        注:你可以在 Vue.js 官方文檔查看系統(tǒng)內(nèi)置的鼠標(biāo)、鍵盤、事件修飾符(描述具體的鍵盤、鼠標(biāo)事件)。

        因此,在 Vue.js 中推薦使用這種方式進(jìn)行事件監(jiān)聽和處理。

        本文完~

        瀏覽 28
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产精品一级淫荡精品录像 | 少妇一级淫片免费放香蕉 | 免费国产黄色大片 | 在线免费观看操逼视频 | 成人福利在线播放 | 欧美人妻综合 | 涩涩涩综合 | 艹逼內射视频 | 亚洲欧美麻豆 | 精品无码一区二区三区四区 |