vue的通信方式有哪些

1.vuex

2.事件总线eventBus

3.父子组件(props)

prop只可以从上一级组件传递到下一级组件(父子组件),即所谓的单向数据流,而且prop只读,不可被修改,所有修改都会失效并警告

//父组件
<xxx :articles="articleList"></xxx>

//子组件
<template>
  <div>
    <span v-for="(item, index) in articles" :key="index">{{item}}</span>
  </div>
</template>
 
<script>
export default {
  props: ["articles"]
};
</script>

1)子父组件

子组件emit绑定一个自定义事件,当这个事件被执行时,就会将参数传给父组件,父组件通过v-on监听并接收参数 (在上一个例子上,点击页面渲染出来的ariticle的item,父组件中显示在数组中的下标)

//父组件
<p>{{currentIndex}}</p>


data() {
    return {
      currentIndex: -1,
      articleList: ["红楼梦", "西游记", "三国演义"]
    };
  },
  methods: {
    onEmitIndex(idx) {
      this.currentIndex = idx;
    }
  }


//子组件
<div v-for="(item, index) in articles" :key="index" @click="emitIndex(index)">{{item}}</div>


<script>
export default {
  props: ["articles"],
  methods: {
    emitIndex(index) {
      this.$emit("onEmitIndex", index);
    }
  }
};
</script>

4.作用域插槽

5.inject provider注入

6.动态路由

7.sessionStorage/localStorage

8.ref

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值