vue通信及组件之间传值
常用 vue 通信大概有这几种方式进行:
- 组件间的父子之间的传值
- 组件间的子父之间的传值
- 非组件间的组件间的传值(简称:EventBus)
- sessionStorage 缓存传值
- 路由带参数跳转进行传值
- vuex 进行传值
组件间的父子之间的传值
思路:父组件调用子组件 dom 位置声明一个名称,然后在子组件接收这名称,便可直接调用。
- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
- 子组件:
组件间的子父之间的传值
思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
- 子组件:
- 父组件:
非组件间的组件间的传值(简称:EventBus)
先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器 (eventBus.js) 让其他房子接收到信号(组件B)
思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
1 | import Vue from 'vue' |
- 组件A:
- 组件 B:
效果展示如下:
sessionStorage 缓存
- 组件 A:
- 组件 B:
路由带参数跳转
- 组件 A:有路由默认的页面
- 组件 B:路由其他页面 children
效果如下:
vuex 主要做数据交互,维护公共状态或数据
官方网站:Vuex
多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
src下创建一个store的文件夹,里面创建index.js文件
1 | import Vue from 'vue' |
某文件触发事件
1 | methods: { |
展示页面
1 | <h1>{{this.$store.state.city}}</h1> |
致谢
本文摘抄至:vue通信及组件之间传值