1.this.$emit ,子传父

2.this.$children属性

this.$children返回的是数组

例子:

//获取子组件数据 console.log(this.$children[0].cdata);
 //调用子组件方法this.$children[0].cmethod()

3.通过this.$refs获取组件

 //获取子组件数据 console.log(this.$refs.test.cdata);
//调用子组件方法this.$refs.test.cmethod()

4.this.$parent获取父组件数据

this.$parent返回的是对象,this.$children返回的数组

例子:

 console.log(this.$parent.pdata);

主页面home

从页面headView

需求

在home.vue 中引用 headView.Vue

方案:

home.vue 代码:

只需要在home.vue 想要的地方添加

//聊天页面import headView '@/view/headView.vue'
export default {components: {headView},

页面之间进行传参

从页面headView

注册组件,定义字段

注意这里的lastData不用在data里面初始化

export default {name: "detail",props: {lastData: {type: Object,required: false,},},

设置监听,获取数据

 watch: {lastData: {handler(newName, oldName) {console.log("监听");console.log(this.lastData);if (this.lastData != null) {this.getList();} else {this.detailList = [];this.isAdd = true;}},deep: true,}

主页面 home.vue

引入从页面headView

import headView '@/view/headView.vue'export default {components: {headView //和上面引入名称保持一致},
//这里的lastData为"发送数据字段"

定义发送字段初始值

data() {return {//要注意和从页面定义的类型保持一致lastData: {}}

根据事件发送数据

 //获取单选框数据,赋值给"发送数据字段"getCurrentRow(row) {this.lastData = row;//这一步值变化的话,从页面headView.vue 会监听到,做出反应},

这里采用引入页面的方式在同一个页面进行主从展示,只要在从页面定义好接收数据字段,在主页面定义好发送数据字段,就能在主页面发送数据,由从页面进行数据的监听,获取数据后进行进一步的处理,实现主从页面的数据传输。

从页面调用主页面的方法

为了演示

home.vue

data() {return {主页面this:{}}},mounted() {this.主页面this = this}, methods: {点击调用子页面(){this.主页面this = this},主页面方法(){alert('我是主页面方法')}}

从页面headView正常接收这个参数进行监听

通过

this.主页面this.主页面方法()调用主页面的方法

1.将主页面的this传给从页面(通过上一步的方法进行传递)