Vue3组件通讯方式

        由于vue3vue2的选项变为了组合API, 而且把datamethods集合到了setup中, 故而使用起来有所区别, 但也大差不差。

1、defineProps方式

        父组件以数据绑定的形式声明要传递的数据,子组件通过defineProperty()方法创建props对象,即可拿到父组件传来的数据。

父组件中:


子组件中:

        需注意,这里的父组件传值和vue2大差不差,只是需要注意引入一下defineProps并在使用一个变量获取这个defineProps方可接受数据.



2、defineEmits方式

子组件中:

父组件中:




3、mitt兄弟传值

为了使自己的代码工整, 我们都会用很多组件 来构造一个完整页面,

可是写着写着就不对劲了 这是vue3啊 很多语法都不熟悉,敢这么写,我带着恐惧和迷茫写着

进入主场:

兄弟组件之间传值需要用到插件:mitt

第一步

安装 npm i mitt

这里习惯也就用vue2传值 就用bus当中间件了

Vue3组件通讯方式_第1张图片

 下载mitt中间件后在js文件中导入这个实例,定义一个变量来接收,最后导出

使用的时候也是需要两个组件都需要引入这个实例文件

Vue3组件通讯方式_第2张图片

 兄弟组件派送:

派送时前面是事件,后面是要传入的参数 

兄弟组件接受:

需要在onMounted()周期中接收  这里使用 emitter.on( )

爷孙组件传值VueX

Vuex 是 Vue 官网中的状态管理工具,使用这个工具可以轻松实现祖级组件之间通信。

附:传值时 defineProps、defineEmit并不是必引,不引入照样可以达到传值效果,建议是引入,避免不必要的报错

你可能感兴趣的:(前端,javascript,开发语言,vue.js)