子组件

<template>
    <div class="com">
        <el-drawer title="我是标题" :visible.sync="drawer_" :direction="direction">
            <span>我来啦! {{task.name}}</span>
        </el-drawer>
    </div>
</template>

<script>
    export default {
        props:{
            task:{
                type:Object,
                default:()=>{}
            },
            drawer:{
                type:Boolean,
                default:false
            },
            direction:{
                type:String,
                default:'rtl'
            }
        },
        data(){
            return {
            }
        },
        computed: {
            drawer_:{
                get(){
                    return this.drawer
                },
                set(v){
                    this.$emit("changeDrawer",v)
               }
            }
        },
    }

</script>
<style scoped>
</style>

父组件 及调用

<task-form @changeDrawer="changeDrawer" :task="taskFormData" :drawer="drawer" :direction="direction"></task-form>
  data() {
            return {
                taskData: [],// 任务数据
                drawer: false,
                direction: 'rtl',
                taskFormData:{}
            }
        },
        methods: {
            changeDrawer(v){
                this.drawer = v;
            },
    }

由于prop传值是单向的 在computed中定义 get及set

GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45 7 个月前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐