vue実装モードボックスの汎用書き方
4800 ワード
elementコンポーネントのソースコードを見たところ,すべてのモードボックスの実装方法はほとんど悪くなく,主にvueのコンポーネント化における双方向バインドを用いていることが分かった.コード:
上のコードの主な部分はwatchの中のコードで、傍受データの変化を実現し、タイムリーに更新します.そのため、使用時に便利になり、コンポーネントをcomponentに登録した後:
注意:syncを使用する必要があります.双方向にバインドできない場合は
<template lang="html">
<transition name="el-fade-in-linear">
<div draggable="true" @drag="mouseDrag" @dragend="mouseDragend" :style="dialogStyle" class="g-dialog-wrapper" v-show="myVisible">
<div class="g-dialog-header">
<div class="left">
div>
<div class="right">
<i class="g-times-icon fa fa-times" @click="myVisible=false" aria-hidden="true">i>
div>
div>
<div class="g-dialog-container">
div>
div>
transition>
template>
<script>
export default {
props: {
visible: Boolean
},
created() {
},
data() {
return {
myVisible: this.visible,
},
computed: {},
methods: {
},
components: {},
watch: {
myVisible: function (val) {
this.$emit('update:visible', val)
},
visible: function (val) {
this.myVisible = val
}
}
}
script>
<style lang="css" scoped>
style>
上のコードの主な部分はwatchの中のコードで、傍受データの変化を実現し、タイムリーに更新します.そのため、使用時に便利になり、コンポーネントをcomponentに登録した後:
<g-key-dialog :visible.sync="keyDialogVisible"></g-key-dialog>
注意:syncを使用する必要があります.双方向にバインドできない場合は