Vue控制子元件的顯示隱藏的四種辦法
1. v-model
//使用
<Model v-model="Model" >
</Model>
// data 中 model :false
// 子元件
<template>
<transition name="model" tag="div">
<div class="model" v-if="value" >
DOM
</div>
</transition>
</template>
<script>
export default {
props: {
value: { type: Boolean, default: false },
},
data() {
return {};
},
methods: {
ConfirmHandler() {
this.$emit("input", false);
this.$emit("Confirm");
},
CancelHandler() {
this.$emit("input", false);
this.$emit("Cancel");
}
}
};
</script>
解析:
<input v-model="text" />
等同於如下,model為@input的一個糖語法
<input :value="text" @input="e => text = e.target.value"/>
由此推算,子元件可以通過value獲取父元件傳來的值,可用$emit("input")觸發父元件的方法input方法
2 .sync 修飾符
//使用
<Model :visible.sync="Model" >
</Model>
// data 中 model :false
// 子元件
<template>
<transition name="modal" tag="div">
<div class="model" v-if="visible" >
DOM
</div>
</transition>
</template>
<script>
export default {
props: {
visible: { type: Boolean, default: false },
},
data() {
return {};
},
methods: {
ConfirmHandler() {
this.$emit("update:visible", false);
this.$emit("Confirm");
},
CancelHandler() {
this.$emit("update:visible", false);
this.$emit("Cancel");
}
}
};
</script>
解析:
<Model:visible.sync="dialogVisible" />
<Model
:visible="Visible"
@update:visible="newVisible => Visible = newVisible"
/>
ref 呼叫子元件方法
// 使用
<Model ref="Model" > </Model>
methods:{
ChangeModel(){
this.$refs.Model.show()
}
}
//子元件
<template>
<transition name="modal" tag="div">
<div class="model" v-if="model" >
DOM
</div>
</transition>
</template>
<script>
export default {
data() {
return {
model:false,
};
},
methods: {
show(){
this.model = true
},
ConfirmHandler() {
this.show()
this.$emit("Confirm");
},
CancelHandler() {
this.show()
this.$emit("Cancel");
}
}
};
</script>
在元件外通過Props控制顯示隱藏
監聽子元件的回撥函式,通過Props控制子元件的顯示隱藏。比較簡單。
Ps:暫時發現四中辦法,很多UI元件都是通過v-model來控制元件的顯示隱藏,這種使用起來程式碼看著更美觀。 狀態修改,第一、二、四種都是在元件外修改的狀態,第三種是在元件內部修改狀態。
相關文章
- # Flutter控制元件的顯示和隱藏的三種方式Flutter控制元件
- vue3 el-table控制列顯示隱藏Vue
- JavaScript動畫方式控制div元素的隱藏和顯示JavaScript動畫
- Boostrap5透過JS控制Offcanvas的顯示隱藏JSCanvas
- Three.js控制物體顯示與隱藏的方法JS
- mac顯示隱藏檔案,取消顯示隱藏檔案Mac
- vue.js顯示與隱藏(v-if)Vue.js
- vue 滑鼠移入顯示圖示 ,滑鼠移出隱藏圖示Vue
- 區塊的顯示和隱藏
- 關閉(隱藏)控制檯上顯示的檔案路徑
- OSX中隱藏和顯示[隱藏檔案]的命令列命令列
- excel隱藏的部分如何顯示出來 excel裡面怎麼顯示隱藏部分Excel
- Elementor如何隱藏頁面上的標題(2種辦法)
- javascript隱藏和顯示div的方法JavaScript
- 動態控制C4C UI元素的顯示和隱藏UI
- iOS 隱藏&顯示tabBariOStabBar
- jQuery控制div顯示和隱藏程式碼例項jQuery
- Mac顯示和隱藏“隱藏檔案”命令Mac
- 遨翔在知識的海洋裡----(vue之顯示隱藏的效果)Vue
- 隱藏資料夾怎麼取消隱藏 關閉隱藏檔案的辦法
- steam隱藏的遊戲怎麼顯示出來 steam隱藏顯示遊戲方法介紹遊戲
- H5 JS控制input表單密碼的顯示與隱藏H5JS密碼
- 通過select下拉框裡的value控制div顯示與隱藏
- 元素的隱藏和顯示(display ,visibility ,overflow)
- DevExpress隱藏列表中顯示的加號+devExpress
- jQuery動畫的顯示與隱藏效果jQuery動畫
- jQuery動畫的顯示與隱藏效果!jQuery動畫
- jQuery 效果 – 隱藏和顯示jQuery
- win10 如何顯示隱藏資料夾_win10 如何顯示隱藏的資料夾Win10
- Mac顯示/不顯示隱藏檔案教程!Mac
- 三種方法教你在 Mac 上顯示隱藏檔案Mac
- win10怎麼顯示隱藏資料夾 win10顯示隱藏資料夾的方法Win10
- 在ABAP Webdynpro裡顯示PDF的一種辦法Web
- 子元素浮動不能正常顯示的解決辦法
- MACOS 如何顯示隱藏檔案Mac
- 【macOS】顯示/隱藏 指定檔案Mac
- Qt 子視窗 隱藏標題欄的圖示,隱藏在工作列上的圖示QT
- win10怎樣顯示隱藏的資料夾_win10隱藏檔案怎麼顯示出來Win10