{
    "componentChunkName": "component---src-templates-post-js",
    "path": "/vuetify-v-carouselnoprops7zhong-wojian-zheng-sitemita/",
    "result": {"data":{"ghostPost":{"id":"Ghost__Post__610a18423986b000013a4e43","title":"【Vuetify】v-carouselのProps７種を検証してみた。","slug":"vuetify-v-carouselnoprops7zhong-wojian-zheng-sitemita","featured":false,"feature_image":null,"excerpt":"ンポーネントの中でも利用したことのない「Carousel」について、色々と検証したことを書いていこうと思います。\n\nv-carouselとは\n主に、複数の画像やコンテンツを一つのスライド内で指定した間隔で順番に表示してくれるコンポーネントです。Webサイトのトップに配置して、おすすめのコンテンツを表示するのに使われているのを見たことがあります。\n\nPropsを7種を検証してみる\nVuetifyの公式APIを確認してみると、v-carouselのPropsは結構ありますが、Props全てにサンプルが用意されていません。実際に業務で使うことがなければ、どんな挙動をするのかわからないので、いくつかのPropsの挙動を検証してみたいと思います。\n\nv-carousel APIAPI for the v-carousel component.Vuetify\n[https://vuetifyjs.com/ja/api/v-carousel/]\nカルーセル・コンポーネントカルーセルコンポーネントは、テキストや画像のスライドなどの視覚的なコンテンツを循環表示させるために使用されます。Vuetify\n[","custom_excerpt":null,"visibility":"public","created_at_pretty":"04 August, 2021","published_at_pretty":"03 June, 2021","updated_at_pretty":"04 August, 2021","created_at":"2021-08-04T13:32:02.000+09:00","published_at":"2021-06-03T12:00:00.000+09:00","updated_at":"2021-08-04T13:44:22.000+09:00","meta_title":null,"meta_description":null,"og_description":null,"og_image":null,"og_title":null,"twitter_description":null,"twitter_image":null,"twitter_title":null,"authors":[{"name":"Yasuhiro Takahashi","slug":"yasuhiro","bio":null,"profile_image":null,"twitter":null,"facebook":null,"website":null}],"primary_author":{"name":"Yasuhiro Takahashi","slug":"yasuhiro","bio":null,"profile_image":null,"twitter":null,"facebook":null,"website":null},"primary_tag":null,"tags":[],"plaintext":"ンポーネントの中でも利用したことのない「Carousel」について、色々と検証したことを書いていこうと思います。\n\nv-carouselとは\n主に、複数の画像やコンテンツを一つのスライド内で指定した間隔で順番に表示してくれるコンポーネントです。Webサイトのトップに配置して、おすすめのコンテンツを表示するのに使われているのを見たことがあります。\n\nPropsを7種を検証してみる\nVuetifyの公式APIを確認してみると、v-carouselのPropsは結構ありますが、Props全てにサンプルが用意されていません。実際に業務で使うことがなければ、どんな挙動をするのかわからないので、いくつかのPropsの挙動を検証してみたいと思います。\n\nv-carousel APIAPI for the v-carousel component.Vuetify\n[https://vuetifyjs.com/ja/api/v-carousel/]\nカルーセル・コンポーネントカルーセルコンポーネントは、テキストや画像のスライドなどの視覚的なコンテンツを循環表示させるために使用されます。Vuetify\n[https://vuetifyjs.com/ja/components/carousels/]mandatory\n公式のAPIでは、Descriptionの欄に説明がありません。翻訳してみると「必須の」という意味でした。defaultでtrueなのでfalseにすると初期表示が空のコンテンツ（何もコンテンツがない状態）が表示されます。シンプルな機能なため、説明がなかったのかなと思います。\n\n初期表示で何も表示されないreverse\nコンテンツのスライド方向が逆になります。通常のスライド方向に慣れてしまうと少し違和感がありますね。\n\nnext-icon, prev-icon\n次のコンテンツ、前のコンテンツに移動するためのボタンのアイコンを変更できます。v-slot:prev \nを利用すればより自由にカスタマイズできますが、アイコンだけ変えたい時に便利ですね。\n\n前へボタン：mdi-arrow-left-thick、次へボタン：mdi-arrow-right-bold-circle-outlineを指定progress,\nprogress-color\n用意されているコンテンツの数を100%したときに、現時点で表示されているコンテンツは何％目であるかを表現してくれるバーが追加されます。デリミターを非表示の際に、残りコンテンツがどれくらい残っているか表現することに使えるかなと思います。progress-colorは指定した色にバーの色が変化します。\n\nコンテンツが次に移る際に、バーが変化しているvertical-delimiters\n指定すると、デリミターが画面左端の縦方向に配置されます。公式APIを確認すると、vertical-delimitersに渡せる値のtypeがstringとなっているのですが、説明部分には特に指定できる文字列の記載がありませんでした。そこで、公式のGitHubを覗きに行くと、、、指定できる文字列を見つけました！、どうやら、leftとrightを指定できるみたいです。\n\nvuetify/VCarousel.ts at 18c2d6ce95978cd2b75a6eaace45141deaa7dbad ·\nvuetifyjs/vuetify🐉 Material Component Framework for Vue. Contribute to\nvuetifyjs/vuetify development by creating an account on GitHub.GitHubvuetifyjs\n[https://github.com/vuetifyjs/vuetify/blob/18c2d6ce95978cd2b75a6eaace45141deaa7dbad/packages/vuetify/src/components/VCarousel/VCarousel.ts#L58]\nrightを指定すると、右側に配置される以上が、v-carouselのPropsでどのようなことができるのか検証した結果になります。\n\n今回は公式のGitHubのソースを直接見てみましたが、説明されていない機能を見つけられるという事があったりと、直接ソースを確認するのはVuetifyの理解を深めるにはとても良い手段だと感じました。\n\nVuetifyのUIコンポーネントはまだまだあるので、今後もやってみようかなと思います","html":"<p>ンポーネントの中でも利用したことのない「Carousel」について、色々と検証したことを書いていこうと思います。</p><h3 id=\"v-carousel%E3%81%A8%E3%81%AF\">v-carouselとは</h3><p>主に、複数の画像やコンテンツを一つのスライド内で指定した間隔で順番に表示してくれるコンポーネントです。Webサイトのトップに配置して、おすすめのコンテンツを表示するのに使われているのを見たことがあります。</p><figure class=\"kg-card kg-embed-card\"><iframe id=\"cp_embed_QWpMbxz\" src=\"https://codepen.io/yasuhirotakahashi/embed/preview/QWpMbxz?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=QWpMbxz\" title=\"carousel sample\" scrolling=\"no\" frameborder=\"0\" height=\"300\" allowtransparency=\"true\" class=\"cp_embed_iframe\" style=\"width: 100%; overflow: hidden;\"></iframe></figure><h4 id=\"props%E3%82%927%E7%A8%AE%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B\">Propsを7種を検証してみる</h4><p>Vuetifyの公式APIを確認してみると、v-carouselのPropsは結構ありますが、Props全てにサンプルが用意されていません。実際に業務で使うことがなければ、どんな挙動をするのかわからないので、いくつかのPropsの挙動を検証してみたいと思います。</p><figure class=\"kg-card kg-bookmark-card\"><a class=\"kg-bookmark-container\" href=\"https://vuetifyjs.com/ja/api/v-carousel/\"><div class=\"kg-bookmark-content\"><div class=\"kg-bookmark-title\">v-carousel API</div><div class=\"kg-bookmark-description\">API for the v-carousel component.</div><div class=\"kg-bookmark-metadata\"><img class=\"kg-bookmark-icon\" src=\"https://vuetifyjs.com/favicon.ico\"><span class=\"kg-bookmark-author\">Vuetify</span></div></div><div class=\"kg-bookmark-thumbnail\"><img src=\"https://cdn.vuetifyjs.com/images/logos/vuetify-logo-300.png\"></div></a></figure><figure class=\"kg-card kg-bookmark-card\"><a class=\"kg-bookmark-container\" href=\"https://vuetifyjs.com/ja/components/carousels/\"><div class=\"kg-bookmark-content\"><div class=\"kg-bookmark-title\">カルーセル・コンポーネント</div><div class=\"kg-bookmark-description\">カルーセルコンポーネントは、テキストや画像のスライドなどの視覚的なコンテンツを循環表示させるために使用されます。</div><div class=\"kg-bookmark-metadata\"><img class=\"kg-bookmark-icon\" src=\"https://vuetifyjs.com/favicon.ico\"><span class=\"kg-bookmark-author\">Vuetify</span></div></div><div class=\"kg-bookmark-thumbnail\"><img src=\"https://cdn.vuetifyjs.com/images/logos/vuetify-logo-300.png\"></div></a></figure><h3 id=\"mandatory\"><strong>mandatory</strong></h3><p>公式のAPIでは、Descriptionの欄に説明がありません。翻訳してみると「必須の」という意味でした。defaultでtrueなのでfalseにすると初期表示が空のコンテンツ（何もコンテンツがない状態）が表示されます。シンプルな機能なため、説明がなかったのかなと思います。</p><figure class=\"kg-card kg-embed-card kg-card-hascaption\"><iframe id=\"cp_embed_MWpvwxg\" src=\"https://codepen.io/yasuhirotakahashi/embed/preview/MWpvwxg?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=MWpvwxg\" title=\"Carousel mandatory sample\" scrolling=\"no\" frameborder=\"0\" height=\"300\" allowtransparency=\"true\" class=\"cp_embed_iframe\" style=\"width: 100%; overflow: hidden;\"></iframe><figcaption>初期表示で何も表示されない</figcaption></figure><h3 id=\"reverse-function reverse() { [native code] }1\"><strong>reverse</strong></h3><p>コンテンツのスライド方向が逆になります。通常のスライド方向に慣れてしまうと少し違和感がありますね。</p><figure class=\"kg-card kg-embed-card\"><iframe id=\"cp_embed_OJpjMpM\" src=\"https://codepen.io/yasuhirotakahashi/embed/preview/OJpjMpM?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=OJpjMpM\" title=\"Carousel reverse sample\" scrolling=\"no\" frameborder=\"0\" height=\"300\" allowtransparency=\"true\" class=\"cp_embed_iframe\" style=\"width: 100%; overflow: hidden;\"></iframe></figure><h3 id=\"next-icon-prev-icon\"><strong>next-icon, prev-icon</strong></h3><p>次のコンテンツ、前のコンテンツに移動するためのボタンのアイコンを変更できます。<code>v-slot:prev</code> を利用すればより自由にカスタマイズできますが、アイコンだけ変えたい時に便利ですね。</p><figure class=\"kg-card kg-embed-card kg-card-hascaption\"><iframe id=\"cp_embed_OJpjMpM\" src=\"https://codepen.io/yasuhirotakahashi/embed/preview/OJpjMpM?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=OJpjMpM\" title=\"Carousel reverse sample\" scrolling=\"no\" frameborder=\"0\" height=\"300\" allowtransparency=\"true\" class=\"cp_embed_iframe\" style=\"width: 100%; overflow: hidden;\"></iframe><figcaption>前へボタン：mdi-arrow-left-thick、次へボタン：mdi-arrow-right-bold-circle-outlineを指定</figcaption></figure><h3 id=\"progress-progress-color\">progress, progress-color</h3><p>用意されているコンテンツの数を100%したときに、現時点で表示されているコンテンツは何％目であるかを表現してくれるバーが追加されます。デリミターを非表示の際に、残りコンテンツがどれくらい残っているか表現することに使えるかなと思います。progress-colorは指定した色にバーの色が変化します。</p><figure class=\"kg-card kg-embed-card kg-card-hascaption\"><iframe id=\"cp_embed_JjWyGQg\" src=\"https://codepen.io/yasuhirotakahashi/embed/preview/JjWyGQg?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=JjWyGQg\" title=\"Carousel progress sample\" scrolling=\"no\" frameborder=\"0\" height=\"300\" allowtransparency=\"true\" class=\"cp_embed_iframe\" style=\"width: 100%; overflow: hidden;\"></iframe><figcaption>コンテンツが次に移る際に、バーが変化している</figcaption></figure><h3 id=\"vertical-delimiters\">vertical-delimiters</h3><p>指定すると、デリミターが画面左端の縦方向に配置されます。公式APIを確認すると、vertical-delimitersに渡せる値のtypeがstringとなっているのですが、説明部分には特に指定できる文字列の記載がありませんでした。そこで、公式のGitHubを覗きに行くと、、、指定できる文字列を見つけました！、どうやら、leftとrightを指定できるみたいです。</p><figure class=\"kg-card kg-bookmark-card\"><a class=\"kg-bookmark-container\" href=\"https://github.com/vuetifyjs/vuetify/blob/18c2d6ce95978cd2b75a6eaace45141deaa7dbad/packages/vuetify/src/components/VCarousel/VCarousel.ts#L58\"><div class=\"kg-bookmark-content\"><div class=\"kg-bookmark-title\">vuetify/VCarousel.ts at 18c2d6ce95978cd2b75a6eaace45141deaa7dbad · vuetifyjs/vuetify</div><div class=\"kg-bookmark-description\">🐉 Material Component Framework for Vue. Contribute to vuetifyjs/vuetify development by creating an account on GitHub.</div><div class=\"kg-bookmark-metadata\"><img class=\"kg-bookmark-icon\" src=\"https://github.githubassets.com/favicons/favicon.svg\"><span class=\"kg-bookmark-author\">GitHub</span><span class=\"kg-bookmark-publisher\">vuetifyjs</span></div></div><div class=\"kg-bookmark-thumbnail\"><img src=\"https://repository-images.githubusercontent.com/67962648/806bc000-1f97-11eb-8cec-f5185cc34c00\"></div></a></figure><figure class=\"kg-card kg-embed-card kg-card-hascaption\"><iframe id=\"cp_embed_QWpMNNr\" src=\"https://codepen.io/yasuhirotakahashi/embed/preview/QWpMNNr?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=QWpMNNr\" title=\"Carousel vertical-delimiters sample\" scrolling=\"no\" frameborder=\"0\" height=\"300\" allowtransparency=\"true\" class=\"cp_embed_iframe\" style=\"width: 100%; overflow: hidden;\"></iframe><figcaption>rightを指定すると、右側に配置される</figcaption></figure><p>以上が、v-carouselのPropsでどのようなことができるのか検証した結果になります。</p><p>今回は公式のGitHubのソースを直接見てみましたが、説明されていない機能を見つけられるという事があったりと、直接ソースを確認するのはVuetifyの理解を深めるにはとても良い手段だと感じました。</p><p>VuetifyのUIコンポーネントはまだまだあるので、今後もやってみようかなと思います</p>","url":"https://ghost.tech.anti-pattern.co.jp/vuetify-v-carouselnoprops7zhong-wojian-zheng-sitemita/","canonical_url":null,"uuid":"9ee0bf78-6ece-4043-933b-460867cdd1cb","page":null,"codeinjection_foot":null,"codeinjection_head":null,"codeinjection_styles":null,"comment_id":"610a18423986b000013a4e43","reading_time":3}},"pageContext":{"slug":"vuetify-v-carouselnoprops7zhong-wojian-zheng-sitemita"}},
    "staticQueryHashes": ["176528973","2358152166","2561578252","2731221146","4145280475"]}