组件传值分为两种,父子组件和兄弟组件之间的传值
父子组件之间的传值问题:通过props进行传值 具体操作如下
首先在父组件中的操作如下
main-message 是子组件的标签名
:maxCount 是你传过去然后子组件接收值的名字
maxShowCount 则是你需要传入的值
然后就是在子组件中进行值的接收
可以看到子组件就是通过props进行值的接收,名字和刚才在父组件传的名字相同就就可以了,这就实现了父组件向子组件的传值。
然后就是子组件向父组件进行传值,$emit()
子组件传值给父组件我们使用$emit(事件名,需要传入的值)去完成
这里设置的触发方式为点击事件进行传值,然后在父组件中通过@事件名=”方法名”方法名要和父组件的取值方法里面的名字保持一致,方法中message就是传过来的值
然后再父组件中使用找到子组件的标签名然后在里面写上
@get-url="getUrl"
@get-menu-name="getMenuName"
这样就完成了子组件传值给父组件。
最后就是完成兄弟组件之间的传值
兄弟组件之间的传值可以通过子传父然后再父传子来实现,但是这样就有些复杂,所以我们可以使用bus原理(具体是什么我也不知道,以后学会了再说),首先我们需要创建一个js文件来建立两者之间的联系,在js里面我们只需要将Vue进行导入和导出
然后再父组件中导入这两个兄弟组件,
最后我们再两个兄弟组件之间导入这个公共的js文件,
对于传值的一方使用的是bus.$emit('名称','值')对于名称,传出的名称要和取值的名称相同就好,然后就是取值,使用的是bus.$on('名称',回调函数)回调函数的参数就是传过来的值,这样就实现了兄弟组件之间的传值