Vue 组件如何进行传值的?(总结Vue的一些知识点)

在Vue中的组件传值分为3种:父传子、子传父、和兄弟之间传值;

第一种父传子:

主要是通过子组件上定义props接收来实现

具体实现步骤是:

 1. 父组件引入子组件并注册,在子组件标签上添加要传递的属性

 2. 在子组件上定义一个props对象,定义好接收的属性名,

接收有两种形式

一是通过数组形式,要接收的属性[],接收过来的数据可以直接使用,

二是通过对象的形式来接收{},对象形式可以设置要传递的数据类型和默认值。

第二种子传父:

主要是通过 $emit来实现

具体步骤是:

1.在子组件要触发传值的地方绑定一个事件,在事件里面通过this.$emit()抛出事件和传递的参数,在父组件里接收 ,$emit第一个值是抛出的事件名称,第二个是要传递的数据

2.在父组件中的子组件标签上绑定子组件抛过来的自定义事件,然后通过回调函数去处理。

第三种兄弟之间传值

方法一:通过eventBus来实现 

具体步骤是:

1.在src中新建一个eventBus.js的文件,充当两个组件之间的桥梁,y引入第三方的new Vue 定义为eventBus
2.在传输数据的一方通过eventBus.emit 来抛出事件。
3.在接受的数据的一方 通过 eventBus.$on(“事件名”,(data)=>{data是接受的数据})

谁需要数据谁就要提供事件处理函数注册事件(通过 $on 注册),用于获取兄弟组件传递过来的数据

方法二:vuex

在vuex的state中 定义公共数据 ,在需要数据的组件中直接使用 this.$store.state.数据名

Vue是一个以数据驱动、组件化的前端框架,其中,组件化是Vue中较为重要的概念之一,组件之间的通信则成为Vue中较为普遍的需求。 Vue中有两种组件的关系,一种是父子之间的关系,一种是兄弟之间的关系,父子组件之间的通信则可以通过props和value实现。 在Vue的父组件中,可以通过prop绑定属性的方式将数据递给子组件,子组件通过props接收父组件的数据并进行操作。 例如,父组件中定义props属性: ``` <template> <child-component :name="name"></child-component> </template> <script> export default { name: 'parent-component', data() { return { name: 'Tom' } }, components: { 'child-component': childComponent } } </script> ``` 子组件则需要在props中声明接收父组件name数据: ``` <template> <div>{{name}}</div> </template> <script> export default { name: 'child-component', props: { name: { type: String, required: true } } } </script> ``` 在父组件中,通过:name属性将name数据递给child-component组件,在子组件props中,声明name属性,类型为String,并设置required为true,则父组件必须递name数据给子组件,否则会抛出错误。 当父组件的数据发生变化时,子组件也会及时更新,这时就可以通过子组件中的计算属性或方法对prop数据进行处理或者对递的数据进行一些额外的操作。 以上就是Vue父子组件props value的简单介绍,掌握好这个知识点可以更好地理解Vue组件的通信方式,提高开发效率和代码的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值