Atsuhiko / Web-App

Webアプリ研究会
2 stars 2 forks source link

VueCLI 入門・コンポーネント #23

Open yuyuyuriko78 opened 4 years ago

yuyuyuriko78 commented 4 years ago

VueCLI

yuyuyuriko78 commented 4 years ago

環境構築

yuyuyuriko78 commented 4 years ago

ディレクトリ構造

$ cd プロジェクト名 $ tree -L 1 . ├── README.md ├── build // ビルド用スクリプトを格納 ├── config // ビルド用設定ファイルを格納 ├── index.html // インデックス、最終的にこのファイルに描画される ├── node_modules // パッケージを格納 ├── package-lock.json // パッケージのバージョン情報 ├── package.json // スクリプトやインストールされたパッケージの情報 ├── src // ビルド対象のファイルを格納 └── static // 静的ファイルを格納


yuyuyuriko78 commented 4 years ago

srcディレクトリ内のディレクトリ・ファイルについて

参考サイト

components

store > index.js

router > index.js

views

App.vue

main.js

yuyuyuriko78 commented 4 years ago

vueファイル

基本構造

<template>
  <div id="bookApp">
    <子
      v-for="(book, idx) in books"
      v-bind:key="idx" // forに使う一意のキー
      v-bind:bookTitle="title"  // 子に送るデータ
      v-bind:bookId="idx" // 子に送るデータ
      v-on:update="update"  // 子から発火したイベント
    >
  </div>
</template>

<script>
import 子コンポーネント名 from './sample';  

export default {
  name: '親コンポーネント名',
  components: {
    子コンポーネント名,
  },
  props: ['使う親のデータ'],
  methods: {
    メソッド
  },
  computed: {
    メソッド
  },
};
</script>

<style>
.bookApp {
  margin-top: 20px;
}
</style>
yuyuyuriko78 commented 4 years ago

コンポーネント

親側の記述

export default { name: '親コンポーネント名', components: { 子コンポーネント名 }, .... }


### 子側の記述
 - これといってなし

***

## 親子間のデータ受け渡し

### ★子→親
#### 子側の記述
- メソッド内でエミット(イベント発火)する
  - イベント名は適宜決めてOK →親側でそのイベント名を使用する
  - 子コンポーネントで定義したデータを送りたい場合は`$this.bookId`のように書く
```js
methods: {
  メソッド名: function() {
    this.$emit('イベントの名前', データの名前);
  }
}

親側の記述

<template>
  <子   v-on:子で指定したイベントの名前=このイベントが子から来たとき起動するメソッド ></子>
</template>

<script>
import 子クラス from 'フォルダ';
export default {
  name: '親コンポーネント名',
  components: {子コンポーネント名},
  methods: {
    メソッド名: function(子で指定したデータの名前){
        処理;
    }
  }
}
</script>

★親→子

親側の記述

<template>
  <子  v-bind:子に送るためのデータ名 = "親でのデータ名"  />
</template>

子側の記述

<script>
export default{
  name: '子コンポーネント名',
  props: ['子に送られたデータ名'],
  ...
}
</script>
yuyuyuriko78 commented 4 years ago

611211 LINE