vue中组件之间的通信方式?
2021-09-21 11:42:34 小于 1 分钟
常见组件通信可以分为三类:
- 父子组件通信
- 兄弟组件通信
- 跨层组件通信
常见的通信方式有以下几种:
- props :父组件通过props向下传递数据给子组件。
- $emit/$on :子组件通过events给父组件发送消息,实际上就是子组件把自己的数据发送到父组件。
- vuex:全局状态管理,数据可以全局使用。
- $parent/$children:这两种都是直接得到组件实例,使用后可以直接调用组件的方法或访问数据。
- provide/inject :主要解决了跨级组件间的通信问题,不过它的使用场景,主要是子组件获取上级组件的状态,跨级组件间建立了一种主动提供与依赖注入的关系。
- $attrs/$listeners :$attrs与$listeners 是两个对象, $attrs 里存放的是父组件中绑定的非 Props 属性,$listeners 里存放的是父组件中绑定的非原生事件。