vue通信及组件之间传值

原文链接:(https://github.com/Xweihaifeng/vue-props
借鉴链接:(https://blog.csdn.net/lander_xiong/article/details/79018737
​​​​​​​父子组件方法调用:(https://blog.csdn.net/zgrkaka/article/details/100528714

常用vue通信大概有这几种方式进行:

  • 组件间的父子之间的传值
  • 组件间的子父之间的传值
  • 非组件间的组件间的传值(简称:EventBus)
  • sessionStorage缓存传值
  • 路由带参数跳转进行传值
  • vuex进行传值

1. 组件间的父子之间的传值

思路:父组件调用子组件dom位置声明一个名称,然后在子组件接收这名称,便可直接调用

父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件) 

image.png

子组件

 image.png

2.组件间的子父之间的传值

思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值

子组件

image.png

父组件 image.png


3.非组件间的组件间的传值(简称:EventBus)

先用例子来解释下组件间的关联:组件A比作一个路由,通过中继器(eventBus.js)让其他房子接收到信号(组件B)

思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去

import Vue from 'vue'
let connect = new Vue()    // 实例
export default connect

组件A

image.png

组件B 

image.png

效果展示如下:

image.png       image.png

4、sessionStorage缓存

组件A

image.png

组件B

image.png

5、路由带参数跳转

组件A:有路由默认的页面 image.png

组件B:路由其他页面 children

image.png

效果

image.png       image.png

6、vuex主要做数据交互,维护公共状态或数据

多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练

image.png

src下创建一个store的文件夹,里面创建index.js文件

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
   state: {
   city: "上海"
   },

   actions: {
     handleCity(ctx, city) {
   // console.log(ctx, city)
       ctx.commit("handleCity", city)
    }
  },
mutations: {
     handleCity(state, city) {
      state.city = city
   }
   }
})

某文件触发事件

methods: {
    handleCityClick(city) {
      this.$store.dispatch("handleCity", "北京");
    },

展示页面

<h1>{{this.$store.state.city}}</h1>

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值