在Vue.js中,我們經(jīng)常需要禁用一個按鈕或者鏈接,以防止多次點擊或者未完成的請求。可以使用以下兩種方法來實現(xiàn)這個功能:
<template> <button @click="submit" :disabled="isDisabled">Submit</button> </template> <script> export default { data() { return { isDisabled: false } }, methods: { submit() { if (!this.isDisabled) { this.isDisabled = true // do something // ... this.isDisabled = false } } } } </script>
以上代碼中,我們使用了Vue的響應(yīng)式數(shù)據(jù)來控制按鈕是否可用。在點擊按鈕后,我們將isDisabled設(shè)置為true來禁用按鈕。當請求完成后,我們再將isDisabled設(shè)置為false來恢復(fù)按鈕可用狀態(tài)。
如果你正在使用Vue 2.6.0或更高版本,你還可以使用Vue的v-once指令來一次性地渲染按鈕,這將會提高渲染性能:
<template> <button @click="submit" :disabled="isDisabled" v-once> {{ buttonText }} </button> </template> <script> export default { data() { return { isDisabled: false, buttonText: 'Submit' } }, methods: { submit() { if (!this.isDisabled) { this.buttonText = 'Submitting...' this.isDisabled = true // do something // ... this.buttonText = 'Submit' this.isDisabled = false } } } } </script>
以上代碼中,我們在按鈕上使用了v-once指令,這意味著按鈕只會被渲染一次。在點擊按鈕后,我們將按鈕文字設(shè)置為"Submitting...",這會立即更新DOM。在請求完成后,我們再將按鈕文字設(shè)置為"Submit",按鈕將再次變?yōu)榭捎脿顟B(tài)。