ミックスインは、混合された成分を使用して導入し、共通機能を使用することができます。Componentクラスパブリック関数は、代わりに同じ名前の関数があります。サブ要素とデータ要素のDOMノードを取得REF $を使用します。$親は親要素のデータを取得し使用してください。スロットスロットを使用

親コンポーネント:

< テンプレート> 
    < DIV クラス= "ボックス" > 
        < ヘッダ> 
            < DIV スロット= "左" >你好</ DIV > 
            < DIV スロット= "右" @click = "userFn" >你好</ DIV > 
        </ ヘッダー> 
        < divのクラス= "コンテンツ" > 
            < h1とREF = "タイトル" ID = "タイトル" >标题</ H1 > 
            < PREF = "DESC" ID = "DESC" >段落説明</ P > 
            < ボタン@click = "ます。getDOM" >取得DOMノード</ ボタン> 
            < のreftest REF = "テスト" /> 
            < ボタン@click = "のgetData" >取得データの子要素</ ボタン> 
        </ DIV > 
    </ DIV > 
</ テンプレート> 
< スクリプト> 
  インポートヘッダーから"@ /ミックスイン/ヘッダー"
  インポートのreftest ' @ /ミックスイン/ヘッダ' 
  エクスポートデフォルト{ 
    [ヘッダ、のreftest]:ミックスイン
    データ(){ 
      リターン{ 
        メッセージ:' 父组件' 
      } 
    }、
    メソッド:{ 
      ます。getDOM(){ 
        にconsole.log(のdocument.getElementById (' タイトル' ))
        はconsole.log(のdocument.getElementById(' DESC ' ))
        はconsole.log(' ---------------------- ' 
        コンソール。ログ(この。$ refs.title)
        console.log(この。$ refs.desc)
      }、
      のgetData(){ 
        この。$ refs.test.msg = ' 奶牛' 
        はconsole.log(この。$のrefs.test.msg)
      } 

    } 
  } 
</ スクリプト>

サブコンポーネント

< テンプレート> 
  < ヘッダクラス= "ヘッダ" > 
    < UL > 
      < > 
        < スロット= "左" ></ スロット> 
      </ > 
      < リチウム> 
        < スロット></ スロット> 
      </ > 
      < > 
        < スロット= "右" ></ スロット> 
      </ > 
    </UL > 
  </ ヘッダ> 
</ テンプレート> 

< スタイルのlang = "SCSS" > 
.header { 100% 
  高さ44px ; 
  背景色#F66 ; 
  マージン下10pxの; 
  UL { 100% 
    高さ100%; 
    表示フレックス
    李{ オート
      高さ100%; 
      表示フレックス
      正当化-コンテンツセンター; 
      ALIGN-アイテムセンター; n番目の子(1){ 
        幅は50px 
      } 
      &:n番目の子(2){ 
        フレックス1 
      } 
      &:n番目の子(3){ は50px 
      } 
    } 
  } 
} 
</ スタイル>
< テンプレート> 
  < divの> 
    < ボタン@click = "のgetData" >データの親要素へのサブアセンブリの直接アクセス</ ボタン> 
  </ DIV > 
</ テンプレート> 
< スクリプト> 
エクスポートデフォルト{ 
  データ(){ 
    リターン{ 
      MSG:" -----------------------------チャイルド" 
    } 
  }、
  メソッド:{ 
    のgetData(){ 
      はconsole.log(この$親..メッセージ)
    } 
  } 
} 
</スクリプト>

Header.js

インポートヘッダー'@ /コンポーネント/ヘッダー' 
'@ /コンポーネント/のreftest'からインポートのreftest 
{エクスポートデフォルト
  :{コンポーネント
    ヘッダ、
    のreftest 
  }、
  メソッド:{ 
    userFn(){ 
      にconsole.log( '个人中心')
    } 
  } 
}

おすすめ

転載: www.cnblogs.com/hy96/p/12195131.html