vue 实现,子组件向父组件 传递数据

首先理清组件之间的关系

    组件与组件之间,还存在着不同的关系。父子关系与兄弟关系(不是父子的都暂称为兄弟吧)。

  父子组件

      父子关系即是组件 A 在它的模板中使用了组件 B,那么组件 A 就是父组件,组件 B 就是子组件。

 

先写子组件:

绑定一个单击事件

   <el-button type="primary" icon="el-icon-search" @click="search"  style="background: #5b6270; border: none;">搜索</el-button>

 

定义数组:用来存值,然后传递给父组件

export default {
        data() {
            return {
                childByValue:[]   //先定义一个数组
            };
        }
  }

 

 

methods: {
            search: function() {
                const inp = this.input;
                if (inp ==="") {
                    this.selectAll(); //如果为空 则执行selectAll去
                } else {
                    this.$axios.get('http://localhost:9999/search?productName=' + inp).then(res => {
                        if (res.data === "error") {
                            alert("抱歉,没有查询到你需要的商品");
                        } else {
                            this.childByValue = res.data;      //给数组赋值
                            this.$emit('childByValue', this.childByValue) //发射、广播出去 主要这里
                        }
                    })
                }
            }
    }

然后子组件就写完了

 

 

 

父组件:

使用components      翻译就是:组成的意思

import headers from './Head.vue'   //导入子组件
    export default {
        components: {
            headers: headers   //这里是import 导入的名字一致
        }
    }

 

使用子组件

    <headers @childByValue="childByValue"></headers>

 

截图:

 

另外 还需要绑定事件来接受数据

methods: {
            childByValue(value) { 
                console.log(value);//接收子组件的数据然后你想干嘛就干嘛
            }
        }
posted @ 2019-01-18 13:34  随★风  阅读(2028)  评论(0编辑  收藏  举报