当前位置: 首页 > Web前端 > JavaScript

史上最全的vue组件间传值方法

时间:2023-03-26 20:14:13 JavaScript

最重要的是Vue2最常用的11种组件间通信方式props$emit/v-on组件间数据传递的几种方法。syncv-modelref(获取子组件的属性并调用子组件的方法)的本质是获取子组件的this$children/$parent(获取子组件的数组(不包括子组件)component)/获取父组件的this)$attrs/$listeners($attrs子组件获取父组件传递的属性,$listeners子组件获取父组件自定义的方法(此自定义方法由子组件通过$emit))provide/injectEventBusVuex$root(获取为根组件,newVue中定义的方法和属性)Slot发布订阅(pubsub-js)本地存储(localstorage和sessionstorage)props父组件传输数据到子组件,这应该是子组件接收数据最常见的方式了,之后不能直接修改父组件的数据。否则会报错,因为父组件重新渲染时数据会被覆盖。如果只想在子组件中修改,建议使用computed//Parent.vue发送//Child.vue到receiveexportdefault{//写法一使用数组接收props:['msg'],//写法二使用对象接收,可以限制接收数据的类型,设置默认值,验证等.props:{msg:{type:String,default:'这是默认数据'}},mounted(){console.log(this.msg)},}.sync子组件可以修改父组件的内容成分。Sync可以帮助我们实现父组件传递给子组件的数据的双向绑定,这样子组件接收到数据后就可以直接修改,而父组件的数据会在同时//Parent.vuev-model类似于.sync,可以实现父组件传递给子组件的数据为双向绑定,子组件通过$emit修改父组件的数据//Parent.vue