父子组件相互传值

为了封装组件

父组件

<template>
    <div>
        <!-- :tableData自定义属性,tableData1,tableData2,是要传过去的数据 -->
        <!-- @handle,$event是子组件传过来的方法和数据 -->
        <!-- ps:子组件传多个字,将$event换成arguments接收 -->
        <Table :tableData="tableData1" @handle="ok1($event)"></Table>
        <Table :tableData="tableData2" @handle="ok2($event)"></Table>
    </div>
</template>

<script>
// 导入子组件
import Table from './index';
export default {
    data() {
        return {
            tableData1: [
                {
                    date: '2016-05-03',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                },
                {
                    date: '2016-05-02',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                },
                {
                    date: '2016-05-04',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                },
                {
                    date: '2016-05-01',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                },
                {
                    date: '2016-05-08',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                },
                {
                    date: '2016-05-06',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                },
                {
                    date: '2016-05-07',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                }
            ],
            tableData2: [
                {
                    date: '2016-05-03',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                }
            ]
        };
    },
    // 注册子组件
    components: {
        Table
    },
    methods: {
        ok1(val) {
            console.log(val);
        },
        ok2(val) {
            console.log(2, val);
        }
    },

    //生命周期 - 创建完成(访问当前this实例)
    created() {}
};
</script>

<style lang='' scoped>
</style>


子组件

<template>
    <div>
        <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
            <el-table-column type="selection" width="55"></el-table-column>
            <el-table-column label="日期" width="120">
                <template slot-scope="scope">{{ scope.row.date }}</template>
            </el-table-column>
            <el-table-column prop="name" label="姓名" width="120"></el-table-column>
            <el-table-column prop="address" label="地址" show-overflow-tooltip></el-table-column>
        </el-table>
        <div style="margin-top: 20px">
            <el-button @click="toggleSelection([tableData[0]])">切换第二、第三行的选中状态</el-button>
            <el-button @click="toggleSelection()">取消选择</el-button>
        </div>
    </div>
</template>

<script>
export default {
    // 接收父组件传来的值
    props: ['tableData'],
    data() {
        return {
            multipleSelection: []
        };
    },

    methods: {
        toggleSelection(rows) {
            if (rows) {
                rows.forEach(row => {
                    this.$refs.multipleTable.toggleRowSelection(row);
                });
            } else {
                this.$refs.multipleTable.clearSelection();
            }
        },
        handleSelectionChange(val) {
        
           this.multipleSelection = val;

           //子组件通过$emit给父组件传值
            this.$emit('handle', this.multipleSelection);
        }
    },

    //生命周期 - 创建完成(访问当前this实例)
    created() {}
};
</script>

<style lang='' scoped>
</style>


子组件传多个值

子组件

  handleSelectionChange(val) {
  
            this.$emit('handle', val, 1, 2, 3);
          
        }

父组件

 <Table :tableData="tableData2" @handle="ok2(arguments)"></Table>




   ok2(val) {
            console.log(2,val);
        }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值