vue3【父子组件间的传值--setup语法糖】

  这篇文章主要讲解vue3语法糖中组件传值的用法、

  父组件

  子组件

  在的中,我们使用? ?来定义父组件传递的

  效果:

  

  vue3中子组件向父组件传递值和vue2.x的区别:

  vue2.x使用的是 this.$emit 而vue3使用的是emit(因为vue3中没有this),它们的传值一样都是方法加值,即vue2.x的是?this.$emit('方法名','传递的值(根据需要传或者不传)')?,vue3的setup语法糖的是?defineEmits?。

  【defineEmits?使用说明】

  1、在子组件中调用?defineEmits?并定义要发射给父组件的方法,也可以传空

  2、使用?defineEmits?会返回一个方法,使用一个变量emits(变量名随意)去接收

  3、在子组件要触发的方法中,调用emits并传入发射给父组件的方法以及参数

  子组件的传递:

  父组件接收:

  vue2.0?中是通过?this.$refs?可以访问子组件的方法和属性,在?vue3?语法糖中,需要将组件的属性及方法通过?defineExpose?导出,父组件才能访问到数据,否则拿不到子组件的数据

  例如:在子组件中我们定义了如下方法和属性

  

  在父组件中进行调用(分为2步):

  

  

  打印结果:

  

  在获取子组件绑定的ref时注意:

  变量名称必须要与 ref 命名的属性名称一致。通过 hello.value 的形式获取 DOM 元素。必须要在 DOM 渲染完成后才可以获取 hello.value,否则就是 null。