心血来潮,总结下 vue 组件传值方法
# props
|  |  | 
|  | <child :msg="msg"></child> | 
|  |  | 
|  |  | 
|  | props:{ | 
|  |   msg:{ | 
|  |      type:"String", | 
|  |      defualt:"这是从父节点传过来的值" | 
|  |   } | 
|  | } | 
# $emit / $on
|  |  | 
|  | <child @handleClick="handleClick"></child> | 
|  | methods: | 
|  | handleClick(){ | 
|  |    | 
|  | } | 
|  |  | 
|  |  | 
|  | <div @click="handleClick"></div> | 
|  | methods: | 
|  | handleClick(){ | 
|  |    this.$emit("handleClick") | 
|  | } | 
# event Bus 可以实现同级组件之间的传值
|  |  | 
|  | Vue.prototype.$bus = new Bus(); | 
|  |  | 
|  |  | 
|  | this.$bus.$on('foo', handle) | 
|  |  | 
|  |  | 
|  | this.$bus.$emit('foo') | 
# parent兄弟组件之间通信可通过共同祖辈搭桥,parent 或 $root
|  |  | 
|  | this.$parent.$on('foo', handle) | 
|  |  | 
|  |  | 
|  |  | 
|  | this.$parent.$emit('foo') | 
# $children
|  |  | 
|  | this.$children[0].xx = 'xxx' | 
# $refs 获取子节点引用
|  |  | 
|  | <HelloWorld ref="hw"/> | 
|  | mounted() { | 
|  |    this.$refs.hw.xx = 'xxx' | 
|  | } | 
# provide/inject 能够实现祖先和后代之间传值
|  |  | 
|  | provide() { | 
|  |    return {foo: 'foo'} | 
|  | } | 
|  |  | 
|  | inject: ['foo'] | 
# $attrs
|  |  | 
|  | <p><!--swig0--></p> | 
|  |  | 
|  |  | 
|  | <HelloWorld foo="foo"/> | 
# 路由传参
步骤:
- 定义路由时加上参数 - props: true,在定义路由路径时要留有参数占位符: name『用法:- to="'路径/'+value"』
 
- 在跳转到的页面加上参数 - props:['name']
 
- 在跳转到的页面就获取到了 name『用法: js 中直接 - this. name;html 中直接插值- {{ name}}』
 
# vuex
最常用的方式,特别是大系统,layout、权限、菜单、登录、用户信息等模块应用广泛,这种方式就不多说了,可以自己查阅文档
# 组件中定义单独的 store
参考另一篇文章 创建小型仓库 store 类似于 vuex