$ ATTRS / inheritAttrsコンポーネントは、ステージ転送渡って達成することができます

$ ATTRS / inheritAttrsコンポーネントは、ステージ転送渡って達成することができます
 質問1 //なぜ、この。$ attrsにはから次転写の値を取得することができます
        // $ ATTRS説明 
        // $ ATTRSは簡単に書き込み小道具の痛みを避けるために、使用することが比較的簡単であり、透明性の伝送特性を達成することができます。
        (スタイルとクラスを除く)渡された上部アセンブリのすべてのデータが含まれています//コンポーネントがどの小道具時間を宣言していない、attrsに
        コンポーネントは、小道具の時間を宣言//とき、attrsには、残りのデータ内のデータが含まれている小道具を削除します。


        // inheritAttrs
        // 1.サブアセンブリinheritAttrsに配置されたときは:プロパティは、HTMLは、ノードDOMに属性データをレンダリングするようではありません偽の時、attrsに。
        // 2. inheritAttrsサブアセンブリに設定されていない場合は、HTML上のノードをレンダリングプロパティをATTRS
        // 3. inheritAttrsに設定した場合:虚偽の陳述で、サイクルコンポーネントはattrsには、上側の部品データの中に入るこの$によって作成することができ、。
        サブアセンブリinheritAttrsに配置された//とき:falseの時、何のスタイル属性とクラスが存在しないATTRS
 
 
 // $ ATTRS / $リスナーは兄弟間だけのクロスステージ転送することはできません
 //コンポーネントが最大の部品導入GO1の内側に行きます
 GO2コンポーネント内部// GO1コンポーネント
 // GO2そこGO3コンポーネント
 
go.vue
<テンプレート> 
    の<div> 
      我是行く
       < GO1 
        :FOO = "foo"という
        :BOO = "ブーイング" 
        :COO = "クー" 
        :斗 = "斗" 
      > </ GO1> 
    </ div> 
</テンプレート> 

<スクリプト> 
インポートGO1から」../go1/go1" 
    輸出のデフォルト{ 
        データ(){ 
            リターン{ 
                FOO: "Javascriptを" 
                BOO: "HTML" 
                COO: "CSS" 
                斗: "Vueの" 
            }
        }、

        成分:{ 
            GO1 
        } 
    }
 </ SCRIPT>
 
 go1.vue
<template>
    <div> 
        <h2>-----------------</h2>
        <br>
        我是go1111
        <!-- <p>foo: {{ foo }}</p> -->
        <!-- <p>go1得到主组件中的数据$attrs: {{ $attrs }}</p> -->
        <go2 v-bind="$attrs"></go2>
        <br>
        <h2>-----------------</h2>

    </div>
</template>

<script>
import go2 from "../go2/go2"
    export default {
        components:{
            go2
        },
        inheritAttrs: false, // .当设置为inheritAttrs: false的时候,在组件的声明周期中可以通过 this.$attrs 获取里面的上层组件数据。
 
   
        props: {
            foo: String // 当声明了prop时候,attrs里面包含除去prop里面的数据剩下的数据。 所以下面没有 Javascript

        },

        created() {
            console.log("我在1出输出",this.$attrs); // {boo: "Html", coo: "CSS", doo: "Vue"}
        }

    }
</script>

 

 
 go2.vue
 
   
<template>
    <div> 
        <h2>-----------------</h2>
        <br>
        
        go222
        <p>boo: {{ boo }}</p>
        <p>childCom2: {{ $attrs }}</p>
        <go3 v-bind="$attrs"></go3>
        <br>

        <h2>-----------------</h2>


    </div>
</template>

<script>
import go3 from "../go3/go3"
    export default {
         components:{
             go3
         },
         inheritAttrs: false,
         props: {
             boo: String  //当声明了prop时候,attrs里面包含除去prop里面的数据剩下的数据。 所以下面没有 html
         },
         created() {
            console.log("我是组件2",this.$attrs); // 我是组件2 {coo: "CSS", doo: "Vue"}
         }

    }
</script>

 

 go3.vue
 
   
<template>
    <div> 
        <h2>-------</h2>
        <br>

        go333
           <p>childCom3: {{ $attrs }}</p>
        <h2>-------</h2>
        <br>

    </div>
</template>

<script>
    export default {
        props: {
            coo: String,  //当声明了prop时候,attrs里面包含除去prop里面的数据剩下的数据。 所以下面没有 coo
        },

         created() {
            console.log("我是组件3",this.$attrs); // 我是组件2 { doo: "Vue"}
         }
    }
</script>
 

 

 

 

おすすめ

転載: www.cnblogs.com/IwishIcould/p/11628105.html