問題

2
Vue.js

Vueでアプリレイアウトを作ろう! リスト編

Vue.jsの問題に挑戦しよう!

問題

Vueでアプリレイアウトを作ろう! リスト編

次はメインコンポーネントの中のリストを作っていこう。

src
├── App.vue
├── assets
│ └── /* 画像等 */
├── components
│ ├── Main.vue
│ ├── Sidebar.vue
| |__ NavItem.vue
| |__ List.vue /* ファイルを追加 */
| |__ ListItem.vue /* ファイルを追加 */
└── main.js

あらかじめエディタに書くコード

                    --- Main.vue
<template>
  <div class="main-container">
    <list></list>
  </div>
</template>
<script>
/* 解答 */
</script>
<style>
  .main-container {
    width: 80%;
    background: #ddd;
  }
  .main-container h1 {
    padding-top: 50px;
  }
</style>
¥Vue¥
                
                    --- List.vue
<template>
  <div class="main-list-wrapper">
    <ul class="main-list">
      <listitem v-for="dream in dreams" :dream="dream" :key="dream.id"></listitem>
    </ul>
  </div>
</template>
<script>
/* コード記述 */
</script>
<style>
  .main-list-wrapper{
    background: #fff;
    width: 80%;
    margin: 2rem auto;
    border-radius: 15px;
  }
  .main-list {
    padding: 2rem;
    text-align: left;
  }
</style>
¥Vue¥
                
                    --- ListItem.vue
<template>
  <div>
    <li class="list-item">{{ dream.name }}</li>
  </div>
</template>
<script>
/* コード記述 */
</script>
<style>
  .list-item {
    width: 100%;
    padding: 8px;
    margin-bottom: 10px;
    list-style: none;
    border-left: 5px solid #40b983;
    border-bottom: 1px solid #40b983;
    border-top:  1px solid #40b983;
    border-right: 1px solid #40b983;
    font-weight: 700;
  }
  .list-item:hover {
    background: #40b983;
    opacity: .8;
    color: #fff;
  }
</style>
¥Vue¥
                

期待する画面

解答と解説(Vueでアプリレイアウトを作ろう! リスト編)

解説

LINE登録して解答を見る

※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます

ではfor文でdreamの配列を回して、子コンポーネントにnameを渡している。
コンポーネントでは、親コンポーネントであるからdreamオブジェクトを受け取るために、`type: Object`
を記述している。ちなみに配列を回すときはkey与えてあげないと、warningといって警告がコンソールにでるから必ず一緒に書くようにしよう。

さらにスキルアップしたい方は公式LINEから「Vue.js」と送信すると動画が見れます。

LINE登録して動画を視聴する
あなたに合った学習プランは?LINE適正コース診断はこちら