vue组件通信的六种常用方法

$字符简书编译有问题,不一样的字体前面都有

1.props(父传子):

通过自定义属性将父组件数据传给子组件,子组件通过props接收就可以使用

2.$emit(子传父):

通过emit来传值,emit 有两个参数,第一个参数是自定义事件,第二个参数是要传递的值,父组件通过v-on来接收

3.eventBus(兄弟之间传值):

使用eventBus事件总线(emit /on)
创建事件中心管理组件之间的通信,用emit传递数据,on接收传的数据

4.parent /children:

parent可以让组件访问父组件的实例(访问的是上一级父组件的属性和方法)children 可以让组件访问子组件的实例,但是, $children 并不能保证顺序,并且访问的数据也不是响应式的

5.provide/inject:

通过provide函数将父组件数据传给子组件,子组件通过inject接收,父组件传出去的数据如果是data里面的值,那么就是响应式数据

6.vuex:

Vuex中有五个属性
1.state:用来存放全局都可以使用的数据
2.mutations:可以通过mutations中的方法修改state中的数据,来完成视图更新
3.getters:可以返回一个对state中的数据进行运算得到的数据
4.actions:actions中的方法触发mutations中的方法从而改变state里面的数据,异步操作只能在actions中执行(如果mutation支持异步操作,就没有办法知道状态是何时更新的)
组件访问mutations中的方法需要使用.commit方法触发,
组件访问actions中的方法需要使用.dispatch方法触发
5.module:当遇见大型项目时,数据量大,store就会显得很臃肿
为了解决以上问题,Vuex 允许我们将 store 分割成模块

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容