Vue的传值
向下传值用属性 (父子) 向上传值用事件 (子父)
因为传值是有不容易理解的部分,所以举个例子来说明一下
向下传值
向下传值可以直接使用数据,但是要想渲染到页面上,需要在组件内部接收一些用props来实现下面图片中的文字可以说明
向上传值
通俗的说向上传值就是孩子辈拿到父辈的值,要进行修改然后将修改后的值再传回父辈,这个就要依靠事件来实现
组件里边嵌套组件去传值然后再把值传递给父组件
例子的作用是修改父组件里边的num值,这个例子设计到父传子,子传父的相互传递
对其进行分析一下
这个例子是在div里边渲染一个组件parent,parent组件里边又包含了一个组件child。
上边已经说,子组件要拿到父组件的值,在parent中拿到num这个值,所以用到了自定义属性,num1,在组件内部接收一下props,所以可以拿到值。在parent内部又定义一个组价,child,在父组件里边,渲染出来,用到了自定义属性num2,用props接收一下。在子组件也拿到了值。
点击按钮的时候修改父组件num的值,是要用事件来改变和传递的。
在父组件里边定义了一个按钮,通过点击按钮来修改值。但是这个按钮是子组件的,所以需要通过向上传递,才可以达到修改数据的目标。所以写事件。事件是一层嵌套一层的。在子组件点击后出发事件change1,change1绑定事件change2,同时传值6,子组件引用在了父组件,触发change2之后向上看父组件里边自定义事件绑定的是change3,在方法中定义了change3,触发change4。而change4就是定义在父组件内部的事件,此时触发事件changenum。在父组件定义了方法,this.num=num。就是修改了data的num值。此时页面渲染的num值就会从12变成了6。此时完成子组件修改了父组件的值。通过事件完成这个要求