6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vue.js #3Advent Calendar 2017

Day 15

Vueコンポーネントのpropsについて

Last updated at Posted at 2017-12-15

コンポーネントが他から使われる際に重要になってくる要素の一つにpropsがあると思います。propsは、コンポーネントを使う際に渡されるものなので、コンポーネントがいかに使いやすいかの重要な要素の一つになります。そこで使いやすいコンポーネントのためにpropsをどう記述するかまとめました。

propsの記述

propsはなるべく詳細に書きます。
propsを詳細に書くことで、そのコンポーネントを使う時どのような値を渡せばいいのかがわかり、使いやすくなります。
またdefaultrequire を使うことで、値の渡し忘れや設定忘れを検知したり防いだりできます。

props: ['defaultInput']

ではなく、

    props: {
      defaultInput: {
        type: String,
        default: 'Hello!'
      }
    }

のようにしましょう。

propsの型

propsの型はなるべくプリミティブな型やStringなどにします。
propsの型に独自のObjectなどを渡すと、可読性が低くなります。そのObjectはどんな値を持っているのか、何を渡せばいいのかがすぐにはわかりづらくなり、ソースコードを追うことになる場合があります。

    props: {
      defaultInput: {
        type: MyObject
      }
    }

よりも、

    props: {
      title: {
        type: String
      },
      description: {
        type: String
      }
    }

の方がわかりやすいです。
もちろん場合によっては全てプリミティブで渡そうとすると、propsが多くなり、逆に使いづらくなることもあるので、その辺りはバランスの問題になるかと思いますが、できるだけpropsはわかりやすくするのがいいと思います。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?