首先区分下父子组件
父组件: 引入组件的组件为父组件(简单理解:组件内容多。)。
子组件: 被引入的组件为子组件。
父组件向子组件传递组件:
- 父组件在标签动态绑定一个属性,如:
<my-son :fathermsg='来自父组件的呐喊' ref="sonref"></my-son>
- 子组件用props接收,如:
props: {
'fathermsg':String,
}
扩展: 通过方法传递数据
父组件:this.$refs.sonref.子组件对应的方法(需传递的数据) //“子组件对应的方法” === 下面的子组件的 ”方法名“; 而传递的数据和接受的数据不必相同。
子组件:方法名(接受的数据) //
子组件向父组件传递组件:
1、子组件传递:
this.$emit("事件名","传递的数据")
2、父组件如何接收:
<my-son :fathermsg='来自父组件的呐喊' ref="sonref" @事件名 = "方法名"></my-son>
方法名(接受的数据){
}
其他数据的传递(全局共享)
1.通过Vue的原型:Vue.prototype.baseUrl="…" ;使用时:this.baseUrl。
2.通过globalData共享数据(只有微信小程序才有):在App.vue文件中配置:globalData:{baseUrl:"…"};使用时:getApp().globalData.baseUrl。
3.vuex
4.本地存储
组件插槽
父组件:
<my-son>
<input />
</my-son>
子组件:
<div>
<h1>标题1</h1>
<slot></slot>
</div>
注释:此时 代表着父组件的。