Open yuyuyuriko78 opened 4 years ago
npm install -g @vue/cli
vue create プロジェクト名
npm run serve
App running at:
- Local: http://localhost:8080/
- Network: http://172.20.10.2:8080/
$ cd プロジェクト名 $ tree -L 1 . ├── README.md ├── build // ビルド用スクリプトを格納 ├── config // ビルド用設定ファイルを格納 ├── index.html // インデックス、最終的にこのファイルに描画される ├── node_modules // パッケージを格納 ├── package-lock.json // パッケージのバージョン情報 ├── package.json // スクリプトやインストールされたパッケージの情報 ├── src // ビルド対象のファイルを格納 └── static // 静的ファイルを格納
<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>
temlate
タグ内の、コンポーネントを使いたい部分で <コンポーネント名 />
を使うscript
タグ先頭に import コンポーネント名 from 'フォルダ';
compornents: { コンポーネント名 }
<template>
<div id="test">
<子 v-on:~~ v:bind:~~ />
</div>
<template/>
<script>
import 子 from 'フォルダ';
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>
VueCLI
npm
(Node Package Manager)が必要Node.js
に含まれるツールなので、まずはじめにNode.jsのインストールを行うNode.js
参考サイト