
父传子
注意:在钩子方法mounted中无法获取到父组件中的数据和方法
子传父
在行内样式设置背景时 :style="{ background: 'url(' + require('/assets/logopng') + ')' }"
放在public里面 <div class="bg" style="background: url(/logopng)"></div>
可以通过以上两种方法来设置,不然正常的写法vue不会解析
provide与inject的传值与props类似,前者可以给后代组件传值,而props是只能给子组件传值。
前提:a组件里调用了b组件,同时b组件里调用了c组件
区别:a组件可以用props方法直接传数据给b组件,但不能传数据给c组件
a组件可以用 provide与inject 方法直接传递数据给b组件,也可以直接给c组件传值
效果图:
用provide与inject方法传值,如果值修改后面组件的值是不会跟着变得,也就是说值不会响应 ;也就是说:如果把a组件中的msg改了,b组件,c组件接收到的msg还是以前的数据,并不会变
直接把传的数据变成复杂类型的数据就行了,例如传一个对象
改变直接thispassdatamsg去修改
将要实现在页面中添加一个按钮打开一个d窗组件,并把一个object传给子组件。
项目里使用了element-ui。
页面获取add-Info组件 :vales 是本页面要传的数据,:isvisibleadd 判断按钮点击时打开子组件
当点击click后:isvisibleadd等于true打开子组件
组件中:
组件是一个element的d框,props取到页面中传过来的数据并绑定到页面中。
比如我们有个组件需要直接在父组件上设置子组件的属性比如下面:
我们可以到input上绑定$attrs获取到type和placeholder
然后我们来试试给props传递一个参数。
可以看到 $attrs 中 prop 不能被识别
继续子组件调用父组件的方法
首先要确保用v-on传递
我们可以看到 由于我们给type="text"的组件绑定了父组件的方法@listener1="fn1"
所有控制台只打印了fn1,
然后我们点击label,执行父组件的方法,改变value的值;
成功把input框中的内容改变。
传送门: >
以上就是关于vue组件之间的传值全部的内容,包括:vue组件之间的传值、vue点击按钮打开组件并向组件传值、vue $attrs $listeners 实现组件传值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)