Vue.jsでカスタムViewPortを定義する「vue-viewports」

vue-simple-search-dropdownとは

vue-viewportsは、カスタムViewPortを定義するライブラリです。

viewportの幅をmatchMediaを利用して監視して、定義したラベルをレスポンスします。

 

環境

この記事は、以下の管理人の検証環境にて記事にしています。

vue.js 2.6.10
vue-viewports 3.1.2

 

ライブラリの取得

ライブラリを取得するには、npm, CDNのどれか一つを使用します。

npm

npm install vue-viewports --save-dev

CDN

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-viewports.js"></script>

gitリポジトリは以下から取得できます。

 

導入手順

管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、カスタムViewPortを定義します。

 

step
1
ライブラリの呼び出し

まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。

ES6等で実装する場合

import VueViewports from 'vue-viewports'

UMDで実装する場合

const VueViewports = window['VueViewports'];

 

step
2
メソッドを設定

Vue.useに上記で呼び出したVueViewportsを取り込みます。
その際にoptionでViewPortのブレークポイントを配列で設定します。

現在のカスタム定義ViewPortのラベルを返すためにViewportLabelthis.$currentViewport.label をレスポンスします。

Vue.use(VueViewports, [
  {
    rule: '350px',
    label: 'mobile'
  },
  {
    rule: '380px',
    label: 'tablet'
  },
  {
    rule: '450px',
    label: 'desktop'
  },
  {
    rule: '1920px',
    label: 'hd-desktop'
  },
  {
    rule: '2560px',
    label: 'qhd-desktop'
  },
  {
    rule: '3840px',
    label: 'uhd-desktop'
  }
]);

new Vue({
  el: '#app',
  data: {
    options: options
  },
  methods: {
    ViewportLabel:function(){
      return this.$currentViewport.label;
    }
  }
});

 

step
3
テンプレートを準備

上記で良いしたViewportLabel メソッドを呼び出します。

<div id="app">
<p>この端末は「<strong>{{ViewportLabel()}}</strong>」ですね?</p>
</div>

 

サンプル

今回のソースを実際に触って確認できるようにデモを用意しました。

See the Pen Vue.jsでカスタムViewPortを定義する「vue-viewports」 by カバの樹 (@kabanoki) on CodePen.dark

 

さいごに

カスタムViewPortを定義するライブラリでした。

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-Responsive Design, UI Utilities, vue.js, ライブラリ
-, , , , ,