[フロントエンド開発]ヴューコンポーネントベースのアイデア

思考のコンポーネント

ページの処理ロジックは、フォローアップするために管理し、拡大を助長されていません、非常に複雑になるそれらに対処するために一緒に入れて。

ページが小さい機能ブロックに分割した場合のページの管理とメンテナンスが非常に簡単になった後、各機能ブロックは、その内容を実現しています。

コンポーネントを登録するための基本的な手順

コンポーネントビルダー作成1.
2.登録コンポーネント
3.コンポーネントを

//创建组件构造器对象
const cpnC = Vue.extend({
      template:`
        <div>
          <h2>hello world</h2>
          <p>hi world</p>
        </div>
      `
})

//注册组件
Vue.component('my-cpn',cpnC)
    
//使用组件
<div id="app">
    <my-cpn></my-cpn>
</div>

グローバル・コンポーネント

ヴューの複数のインスタンスで使用することができます
Vue.component('my-cpn',cpnC)

地方議会

これは、現在のインスタンスにのみ使用することができヴュー

var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      components:{
        mycpn: cpnC
      }
    });

父と息子のコンポーネント

<script>
    const cpnC1 = Vue.extend({
      template:`
        <div>
          <h2>我是标题</h2>
          <p>我是内容,哈哈</p>
          </div>
      `
    })

    const cpnC2 = Vue.extend({
      template:`
        <div>
          <h2>我是标题2</h2>
          <p>我是内容2,呵呵呵</p>
          <cpn1></cpn1>
        </div>
      `,
      components:{
        cpn1:cpnC1
      }
    })
    
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      components:{
        cpn2: cpnC2
      }
    });
  </script>
部品とアセンブリ間の階層関係があります

シンタックスシュガーグローバルコンポーネントをサインアップ

Vue.component('cpn1',{
      template:`
        <div>
          <h2>我是标题</h2>
          <p>我是内容,呵呵呵</p>
        </div>
      `
    })

ローカルコンポーネントシンタックスシュガーをサイン

var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      components:{
        'cpn2' :{
          template:`
          <div>
           <h2>我是标题2</h2>
           <p>我是内容2,呵呵呵</p>
         </div>
         `
        }
      }
    });
延長呼び出しのステップを排除

コンポーネントテンプレートは、デタッチ

1.スクリプトタグ、 type="text/x-template"
<script type="text/x-template" id="cpn">
  <div>
    <h2>哈哈哈哈哈</h2>
    <p>歪比歪比</p>
  </div>
</script>

<script>
    Vue.component('cpn',{
      template: '#cpn'
    })
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {}
    });
</script>
1.テンプレートラベル
<template id='cpn'>
  <div>
    <h2>哈哈哈哈哈</h2>
    <p>歪比歪比</p>
  </div>
</template>

<script>
    Vue.component('cpn',{
      template: '#cpn'
    })
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {}
    });
</script>

コンポーネントは、データVueのインスタンスにアクセスすることができますか?

できませんそして、あなたがアクセスすることができた場合でも、インスタンスVueの上のすべてのデータならば、Vueの例は非常に肥大化します

Vueのコンポーネントは、データを保存するための独自の場所を持っている必要があります
<template id='cpn'>
  <div>
    <h2>{{title}}</h2>
    <p>歪比歪比</p>
  </div>
</template>
  <script>
    Vue.component('cpn',{
      template: '#cpn',
      data(){
        return {
          title: 'abc'
        }
      }
    })
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {}
    });
  </script>

データ(){}

コンポーネントデータは関数でなければならないのはなぜ

コンポーネントは、密閉空間で、各コンポーネントのインスタンスは、それ自身の状態を有します

おすすめ

転載: www.cnblogs.com/kaba/p/12551187.html