vue 传值

vue组件的作用域之间是相互独立的,一个组件不能使用另外一个组件的数据,所以为了
实现一个组件可以使用另外一个组件的数据,我们需要用到传值
vue 的组件传值分三类:1.父传子 2.子传父 3.非父子
其传值步骤如下:
第一种父:传子:
1.根组件即父组件,将要传递的值或者数据作为属性放置在要接收值的开始标签中—
属性名自定义,属性值为传递的data变量
2.在子组件中(要接收数据的那个子组件)通过props属性接收传递过来的数据str(子组
件开始标签中自定义的属性名)
3.在组件模板中直接调用,当前的元素(str)即可-----但是:一旦福组件的数据发生变化,子组件接收
的数据也会发生改变-----所以还需要有第四步,建立单项数据流,即,使父组件传递到自福建的数据,不在受父组件的影响
4.在子组件的data中重新声明一个变量(为null或者’’),接收props中传递的数据,该变量的数据,在后期使用时直接调用即可

	第二种:子传父:
		1.在子组件的某个的方法中,通过调用$emit发射一个 自定义事件,即$emit(eventname,data)
		2.在父组件调用子组件的位置(即,子组件的开始标签)上,通过v-on监听子组件的发射过来的事件
		即@eventname=function(父组件生命的function)接收传递过来的数据
		3.在父组件中声明一个变量,接收传递过来的数据


	第三种:	非父子传值
		1.在要传值的组件A的某个方法中,通过创建空的vue实例bus擦混噶几安一个自定义事件
		即bus.$emit(eventname,并传递数据)----要传递的数据储存在bus实例中
		2.在要接收数据的组件B中的mounted声明周期函数中,通过bus.$on来监听发射的自定义事件
		,并在回调函数中,接收传递的数据bus.$on(eventname,callback)
		3.将接收的数据储存在data变量中
	注意:非父子传值的本质就是:将要传递的数据,储存在空的vue实例bus中,然后利用bus进行数据的传输

猜你喜欢

转载自blog.csdn.net/qq_42894094/article/details/82789334