vue利用sync語(yǔ)法糖實(shí)現(xiàn)modal彈框的項(xiàng)目實(shí)踐
用過(guò)vue的開(kāi)發(fā)者都知道vue是組件化開(kāi)發(fā)的一個(gè)框架,基于組件化的原則,很多時(shí)候我們開(kāi)發(fā)的時(shí)候都會(huì)把像modal、drawer這種彈框,抽屜類的組件作為一個(gè)單獨(dú)的組件分出去,然后在在用到的頁(yè)面引入進(jìn)來(lái)這個(gè)時(shí)候就涉及到了visible 屬性的父子組件的通信,我們常規(guī)的做法可以通過(guò)props,$emit的方式進(jìn)行通信,但vue其實(shí)提供了一種更為優(yōu)雅的實(shí)現(xiàn)方式,可以通過(guò)sync的語(yǔ)法糖來(lái)實(shí)現(xiàn)。 具體代碼如下 父組件代碼
<div class="flex"> <a-button @click="openModal">打開(kāi)Modal彈框</a-button> <DemoModal :visible.sync="visible" /> </div> </template> <script> import DemoModal from './demoModal.vue' export default { components: { DemoModal, }, data() { return { visible: false, } }, methods: { openModal() { this.visible = 'true' }, }, } </script> <style > .flex { display: flex; justify-content: center; align-items: center; height: 100vh; } </style>
子組件代碼
<a-modal title="彈框" :visible="visible" @ok="handleSubmit" @cancel="handleCancel" > </a-modal> </template> <script> export default { name:"DemoModal", props:{ visible:{ type:Boolean, default:false } }, methods:{ handleCancel(){ this.$emit("update:visible",false) } } } </script>
效果圖
下面簡(jiǎn)單說(shuō)一下sync語(yǔ)法糖的原理 其實(shí)原理也是基于props emit,只不過(guò)語(yǔ)法糖會(huì)幫我們做一些事,父組件里:visible.sync="visible"會(huì)被擴(kuò)展成:visible=""visible@upate:visible="value−>visible=value"其中value是子組件傳過(guò)來(lái)的參數(shù),這也就是為什么子組件關(guān)閉的時(shí)候要用這個(gè)寫(xiě)法this.emit("update:visible",false) 通過(guò)語(yǔ)法糖來(lái)實(shí)現(xiàn)modal彈框,可以讓我們的代碼更為簡(jiǎn)潔更為優(yōu)雅,其用法在drawer里也是一樣的這里就不一一闡述了
到此這篇關(guān)于vue利用sync語(yǔ)法糖實(shí)現(xiàn)modal彈框的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)vue modal彈框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue中的methods、computed計(jì)算屬性和watch監(jiān)聽(tīng)屬性的使用和區(qū)別解析
這篇文章主要介紹了Vue中的methods、computed計(jì)算屬性和watch監(jiān)聽(tīng)屬性的使用和區(qū)別,本文通過(guò)示例代碼給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01vue element-ui el-cascader級(jí)聯(lián)選擇器數(shù)據(jù)回顯的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了vue element-ui el-cascader級(jí)聯(lián)選擇器數(shù)據(jù)回顯的兩種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-07-07vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案
今天小編就為大家分享一篇vue+webpack dev本地調(diào)試全局樣式引用失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11vue-treeselect顯示unknown的問(wèn)題及解決
這篇文章主要介紹了vue-treeselect顯示unknown的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07elementUI如何動(dòng)態(tài)給el-tree添加子節(jié)點(diǎn)數(shù)據(jù)children詳解
element-ui 目前基本成為前端pc網(wǎng)頁(yè)端標(biāo)準(zhǔn)ui框架,下面這篇文章主要給大家介紹了關(guān)于elementUI如何動(dòng)態(tài)給el-tree添加子節(jié)點(diǎn)數(shù)據(jù)children的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11