javascript中有alert函數,可以用來彈出提示框,但在Vue中,Vue本身貌似沒有提供alert的方法,那該怎么辦呢?
可以使用原生的javascript alert方法,比如說下面這樣:
<button onclick="alert('Hello Vue!')">Click me</button>
但是這種方式有一個問題:當該彈框彈出時,會阻止代碼運行,直到用戶關閉這個彈窗,所以并不能達到我們想要的效果。
為了解決這個問題,可以封裝一個函數,來實現使用Vue調用彈框的方法。
Vue.prototype.$alert = function(msg) { alert(msg) }
這樣在Vue中就可以這樣調用:
this.$alert('Hello Vue!')
有時候我們需要在彈窗中新增自定義的文字和按鈕,那么可以使用Vue的組件來實現,具體實現方式如下:
<template><div><div>{{msg}}</div><button @click="handleClose">確定</button></div></template><script>export default { props: ['msg', 'on-close'], methods: { handleClose() { this.onClose() } } } </script>
然后在使用的時候,可以傳入msg和onClose這兩個參數:
<my-component :msg="Hello Vue!" :on-close="closeAlert"></my-component>
在Vue組件中存在一種特殊的生命周期函數——mounted,它在組件被掛載到DOM節點之后調用。這里我們同樣可以使用alert方法來實現彈窗效果。
<template><div>... </div></template><script>export default { mounted() { alert('Hello Vue!') } } </script>
此外,還可以使用element-ui等流行的第三方庫來實現彈窗效果。
總的來說,在Vue中雖然本身并沒有提供alert方法,但是通過一些方法和技巧,我們可以在Vue中輕松實現彈窗的效果,讓頁面更加用戶友好。