ホームページ > ウェブフロントエンド > Vue.js > vue.jsでコンポーネントを使用する方法

vue.jsでコンポーネントを使用する方法

coldplay.xixi
リリース: 2020-11-12 14:24:52
オリジナル
6091 人が閲覧しました

vue.js でコンポーネントを使用する方法: 1. HTML 要素を拡張し、再利用可能なコードをカプセル化する; 2. コンポーネントはカスタム要素であり、[Vue.js] のコンパイラはそれに特別な関数を追加します; 3.コンポーネントは、is 属性で拡張されたネイティブ HTML 要素の形式にすることもできます。

vue.jsでコンポーネントを使用する方法

【おすすめ関連記事:vue.js

vue.js でコンポーネントを使用する方法:

コンポーネントとは

規則による, Vue 公式 Web サイトからの一文を引用:

コンポーネントは、Vue.js の最も強力な機能の 1 つです。コンポーネントは HTML 要素を拡張し、再利用可能なコードをカプセル化できます。大まかに言うと、コンポーネントは、Vue.js のコンパイラーが特別な機能を追加するカスタム要素です。場合によっては、コンポーネントは、 is 属性で拡張されたネイティブ HTML 要素の形式を取ることもできます。

コンポーネント コンポーネントの登録

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Vue.component('todo-item',{

  props:['grocery'],

  template:&#39;<li>{{grocery.text}}</li>&#39;

})

var app7 = new Vue({

  el:"#app7",

  data:{

    groceryList:[

      {"id":0,"text":"蔬菜"},

      {"id":1,"text":"奶酪"},

      {"id":2,"text":"其他"}

    ]

  }

})

ログイン後にコピー

1

2

3

4

5

6

7

8

9

<div id="app7">

  <ol>

    <todo-item

      v-for="grocery in groceryList"

      v-bind:grocery="grocery"

      v-bind:key="grocery.id">

    </todo-item>

  </ol>

</div>

ログイン後にコピー

ローカル登録:

1

2

3

4

5

6

7

8

9

10

var Child = {

 template: &#39;<div>A custom component!</div>&#39;

}

new Vue({

 // ...

 components: {

  // <my-component> 将只在父模板可用

  &#39;my-component&#39;: Child

 }

})

ログイン後にコピー

DOM テンプレートの解析手順

コンポーネントには、特定の HTML タグの下でいくつかの制限が適用されます。

たとえば、コード内の table タグの下のコンポーネントは無効です。

1

2

3

<table>

 <my-row>...</my-row>

</table>

ログイン後にコピー

回避策は、is 属性経由でコンポーネントを使用することです

1

2

3

<table>

 <tr is="my-row"></tr>

</table>

ログイン後にコピー

次のいずれかのソースからの文字列テンプレートを使用する場合、制限されないことに注意してください

1

<script type="text/x-template">

ログイン後にコピー

JavaScript インライン テンプレート文字列

#.vueComponent

data は関数を使用して、複数のコンポーネントが相互に影響を与えることを回避します

html

1

2

3

4

5

<div id="example-2">

 <simple-counter></simple-counter>

 <simple-counter></simple-counter>

 <simple-counter></simple-counter>

</div>

ログイン後にコピー

js

1

2

3

4

5

6

7

8

9

10

var data = { counter: 0 }

Vue.component(&#39;simple-counter&#39;, {

 template: &#39;<button v-on:click="counter += 1">{{ counter }}</button>&#39;,

 data: function () {

  return data

 }

})

new Vue({

 el: &#39;#example-2&#39;

})

ログイン後にコピー

上記のように、div の下に 3 つのコンポーネントがあり、各コンポーネントはカウンターを共有します。いずれかのコンポーネントをクリックすると、すべてのコンポーネントのカウンタが 1 つ増加します。

解決策は次のとおりです。

js

1

2

3

4

5

6

7

8

9

Vue.component(&#39;simple-counter&#39;, {

 template: &#39;<button v-on:click="counter += 1">{{ counter }}</button>&#39;,

 data: function () {

  return {counter:0}

 }

})

new Vue({

 el: &#39;#example-2&#39;

})

ログイン後にコピー

このようにして、各コンポーネントが生成された後、独自の専用カウンターが作成されます。

関連する無料学習の推奨事項: JavaScript (ビデオ)

以上がvue.jsでコンポーネントを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート