前端面试题 Vue 组件通信(父传子,子传父,跨组件传值)

目录

一, 简单介绍组件通信

二, 详解传值方法

1.父传子 props

2.子传父 $emit

3.跨组件通信 event-bus


一, 简单介绍组件通信

        我们知道在现在的开发环境下,不管前后端开发都是组件化模块化,这是因为组件的优势无比的巨大,可以进行多次的复用增加开发效率,也可以分类鲜明,便于维护,而我今天所写的就是开发中分割成不同的组件互相传递数据和互动

        我的工作中常用地组件通信大致分为三类: 父传子 , 子传父 , 跨组件传值

        下面就来分别介绍一下 我常用的这三种传值方法

二, 详解传值方法

        父子组件的确认方法:我将 B 组件import引入到 A 组件中,那么 B 就是 A 的子组件,A 就是 B 的父组件

1.父传子 props

        简而言之,父传子就是父组件把数据传给子组件,具体就是如下,在子组件的props中定义自定义属性来待接收父组件的数据,有两种方法 如下:

        第一种,也是最推荐用的一种,以复杂类型的方式进行声明,这样存储的便是一个地址,可以和父组件的数据进行双向绑定,同步数据,虽然可以双向绑定,但是在Vue2.0中还是不可以直接在子组件中更改父组件的数据,需要用到子传父才行,这点等下会写到

        这里只是用 text 举个栗子,具体叫什么都可以哈,只是父子里面需要对应上相同

        这个 text 接收到数据后的使用方法和一般data中声明的变量一样,只是不能再子组件中改变他

子组件中:        props 定义属性接收




父组件中:        标签内 传递数据




        如上 虽然我的注释写的很清楚了,但是还是在介绍一下, 是子组件的标签,在此标签的基础上书写 子组件props 定义的属性名,并且传递参数具体对应关系和效果如下:

前端面试题 Vue 组件通信(父传子,子传父,跨组件传值)_第1张图片前端面试题 Vue 组件通信(父传子,子传父,跨组件传值)_第2张图片

        如上就是第一种我最常用的父传子,其实还有一种方法,但是我一般也不用,很不方便,也贴到下边了,这个是以数组方式声明

export default {
  // 在此处定义props
  props: ['text']
}


​

 

2.子传父 $emit

        刚刚说到了在 Vue2.0 子组件不能直接改父组件的数据,否则会报错,这个解决方法就是在子组件中发起一个 自定义事件 ,在父组件监听这个事件,并且定义一个函数来改变数据,具体操作如下:

子组件:        发起一个自定义事件,等待父组件监听到执行函数




        我先在原有的代码上添加了一个

你可能感兴趣的