父组件传值给孙组件
Posted luguankun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父组件传值给孙组件相关的知识,希望对你有一定的参考价值。
有一个组件A,包含了组件B,组件B包含了组件C,那么组件A就是父组件,组件B就是子组件,组件C就是孙组件。
$attrs可以把父组件的值传给孙组件
1.在引用的子组件里绑定要传的值
<template> <div id="app"> <HelloWorld :test="hello"/> </div> </template>
2.在引用的孙组件里用v-bind绑定$attrs
<child v-bind="$attrs"></child>
3.在孙组件里打印出this.$attrs,可以获取到父组件的数据
mounted(){ console.log(this.$attrs.test); this.cdata = this.$attrs.test }
完整例子:
App.vue 父组件
<template> <div id="app"> <HelloWorld :test="hello"/> </div> </template> <script> import HelloWorld from ‘./components/HelloWorld‘ export default { name: ‘App‘, components: { HelloWorld }, data(){ return { hello:"hello" } }, } </script>
HelloWorld.vue子组件
<template> <div> <child v-bind="$attrs"></child> </div> </template> <script> import Child from ‘../components/Child‘ export default { name: "HelloWorld", components:{ Child }, data () { return { }; } } </script>
Child.vue 孙组件
<template> <div> {{cdata}} </div> </template> <script> export default { name: "Child", data () { return { cdata:"孙组件" }; }, mounted(){ console.log(this.$attrs.test); this.cdata = this.$attrs.test } } </script>
以上是关于父组件传值给孙组件的主要内容,如果未能解决你的问题,请参考以下文章