yuheijotaki.com

【学習メモ】基礎から学ぶ Vue.js その3

  • 第 5 章 コンポーネントで UI 部品を作る

コンポーネントの登録

<div id="app"><my-component></my-component></div>
Vue.component("my-component", {
  template: `<p>MyComponent</p>`
});

var app = new Vue({
  el: "#app"
});

ローカルに登録 そのコンポーネントのスコープ内だけでの使用を制限する場合

var MyComponent = {
  template: `<p>MyComponent</p>`
};

var app = new Vue({
  el: "#app",
  components: {
    "my-component": MyComponent
  }
});

親コンポーネント/子コンポーネント

<div id="app"><parent-component></parent-component></div>
Vue.component("child-component", {
  template: "<p>ChildComponent</p>"
});

Vue.component("parent-component", {
  template: "<child-component></child-component>"
});

var app = new Vue({
  el: "#app"
});

コンポーネント内でのdata

<div id="app"><data-component></data-component></div>
Vue.component("data-component", {
  template: "<p>{{ message }}</p>",
  data: function() {
    return {
      message: "DataComponent"
    };
  }
});

var app = new Vue({
  el: "#app"
});

コンポーネント間の通信(親 → 子)props down

<div id="app"><props-parent-component></props-parent-component></div>
Vue.component("props-child-component", {
  template: "<p>{{ val }}</p>",
  props: ["val"]
});

Vue.component("props-parent-component", {
  template:
    '<props-child-component v-bind:val="message"></props-child-component>',
  data: function() {
    return {
      message: "propsParentComponent"
    };
  }
});

var app = new Vue({
  el: "#app"
});

コンポーネント間の通信(子 → 親)event up ($emit) はスキップ