ボタン Vue コンポーネント

ボタン Vue コンポーネントは、Framework7 の ボタン 要素を表します。

ボタンコンポーネント

以下のコンポーネントが含まれています。

ボタンのプロパティ

ボタンコンポーネントは、リンク コンポーネントとほぼ同じプロパティを持ちますが、いくつかの追加のボタン固有のプロパティがあります。

プロパティデフォルト説明
<f7-button> プロパティ
type文字列submitbutton、またはresetのいずれかの場合、同じtype属性を持つ<button>要素としてレンダリングされます。
tab-link文字列
ブール値
タブリンクを有効にし、ターゲットタブのCSSセレクターを指定します(文字列として指定した場合)。
tab-link-activeブール値falseこのタブリンクをアクティブにします。
activeブール値falseセグメントで使用する場合、このボタンをアクティブ状態にします。tab-link-activeの代わりに使用してください。
text文字列ボタンのテキストラベル
tooltip文字列ボタンのホバー/押下時に表示するツールチップテキスト
tooltip-trigger文字列hoverツールチップのトリガー(開く)方法を定義します。hoverclick、またはmanualにすることができます。
roundブール値falseボタンを丸くします。
round-iosブール値falseiOSテーマのみでボタンを丸くします。
round-mdブール値falseMDテーマのみでボタンを丸くします。
largeブール値false大きなボタンにします。
large-iosブール値falseiOSテーマのみで大きなボタンにします。
large-mdブール値falseMDテーマのみで大きなボタンにします。
smallブール値false小さなボタンにします。
small-iosブール値falseiOSテーマのみで小さなボタンにします。
small-mdブール値falseMDテーマのみで小さなボタンにします。
fillブール値falseボタンを塗りつぶされた色にします。
fill-iosブール値falseiOSテーマのみでボタンを塗りつぶされた色にします。
fill-mdブール値falseMDテーマのみでボタンを塗りつぶされた色にします。
tonalブール値falseトーンスタイルのボタンにします。
tonal-iosブール値falseiOSテーマのみでトーンスタイルのボタンにします。
tonal-mdブール値falseMDテーマのみでトーンスタイルのボタンにします。
raisedブール値falseボタンを立体的にします。
raised-iosブール値falseiOSテーマのみでボタンを立体的にします。
raised-mdブール値falseMDテーマのみでボタンを立体的にします。
outlineブール値falseボタンをアウトラインにします。
outline-iosブール値falseiOSテーマのみでボタンをアウトラインにします。
outline-mdブール値falseMDテーマのみでボタンをアウトラインにします。
<Button> プリローダー関連のプロパティ
preloaderブール値falseボタンにプリローダーを表示します。
loadingブール値falseプリローダーの表示/非表示とボタンテキストの表示/非表示を制御します(ボタンをローディング状態に切り替えます)。
preloader-color文字列ボタンのプリローダーの色
preloader-size数値
文字列
ボタンのプリローダーのサイズ
<f7-button> アイコン関連のプロパティ
icon-size文字列
数値
px単位のアイコンサイズ
icon-color文字列デフォルトの色のいずれか。
icon文字列カスタムアイコンクラス
icon-f7文字列F7 Iconsフォントアイコンの名前
icon-material文字列Material Iconsフォントアイコンの名前
icon-ios文字列iOSテーマで使用されるアイコン。コロンで区切られたアイコンファミリーとアイコン名で構成されます(例:f7:house)。
icon-md文字列MDテーマで使用されるアイコン。コロンで区切られたアイコンファミリーとアイコン名で構成されます(例:material:home)。
<f7-button> ナビゲーション/ルーター関連のプロパティ
href文字列
ブール値
#読み込むページのURL。ブール値href="false"の場合、hrefタグは追加されません。
target文字列リンクのtarget属性の値(例:_blank_selfなど)。
view文字列ページを読み込むViewのCSSセレクター。または、現在のViewに読み込む場合はcurrent
externalブール値Framework7のリンククリックハンドラーをバイパスします。
backブール値戻るナビゲーションリンクを有効にします。
open-in文字列ページルートをモーダルまたはパネルとして開きます。popuploginScreensheetpopoverpanelを指定できます。
forceブール値ページを強制的に読み込み、履歴の前のページを無視します(backプロパティと一緒に使用)。
reload-currentブール値現在アクティブなページの代わりに新しいページを再読み込みします。
reload-previousブール値履歴の前のページをルートからの新しいページに置き換えます。
reload-allブール値新しいページを読み込み、履歴とDOMから前のページをすべて削除します。
reload-detailブール値マスター詳細ビューで詳細ページを再読み込みします。
animateブール値ページアニメーションを無効にします。
transition文字列カスタムページ遷移の名前
ignore-cacheブール値キャッシュを無視します。
route-tab-id文字列ルーティング可能なタブID
route-propsオブジェクトターゲットルートコンポーネントに渡される追加のプロパティを含むオブジェクト
prevent-routerブール値false設定されている場合、Framework7ルーターによって処理されません。
<f7-button> アクション関連のプロパティ
panel-open文字列
ブール値
クリック時に開くパネルのCSSセレクター。DOMに左パネルまたは右パネルのみがある場合は、leftまたはrightにすることもできます。
panel-close文字列
ブール値
クリック時にパネルを閉じます。
panel-toggle文字列
ブール値
クリック時に切り替えるパネルのCSSセレクター。DOMに左パネルまたは右パネルのみがある場合は、leftまたはrightにすることもできます。
actions-open文字列
ブール値
クリック時に開くアクションシートのCSSセレクター
actions-close文字列
ブール値
クリック時に閉じるアクションシートのCSSセレクター。または、現在開いているアクションシートを閉じるブール値のプロパティ。
popup-open文字列
ブール値
クリック時に開くポップアップのCSSセレクター
popup-close文字列
ブール値
クリック時に閉じるポップアップのCSSセレクター。または、現在開いているポップアップを閉じるブール値のプロパティ。
popover-open文字列
ブール値
クリック時に開くポップオーバーのCSSセレクター
popover-close文字列
ブール値
クリック時に閉じるポップオーバーのCSSセレクター。または、現在開いているポップオーバーを閉じるブール値のプロパティ。
sheet-open文字列
ブール値
クリック時に開くシートモーダルのCSSセレクター
sheet-close文字列
ブール値
クリック時に閉じるシートモーダルのCSSセレクター。または、現在開いているシートモーダルを閉じるブール値のプロパティ。
login-screen-open文字列
ブール値
クリック時に開くログイン画面のCSSセレクター
login-screen-close文字列
ブール値
クリック時に閉じるログイン画面のCSSセレクター。または、現在開いているログイン画面を閉じるブール値のプロパティ。
sortable-enable文字列
ブール値
クリック時に有効にするソート可能なリストのCSSセレクター
sortable-disable文字列
ブール値
クリック時に無効にするソート可能なリストのCSSセレクター。または、現在開いているソート可能なリストを閉じるブール値のプロパティ。
sortable-toggle文字列
ブール値
クリック時に切り替えるソート可能なリストのCSSセレクター。または、現在開いている/閉じているソート可能なリストを切り替えるブール値のプロパティ。
searchbar-enable文字列
ブール値
クリック時に有効にする展開可能な検索バーのCSSセレクター。または、最初に検出された検索バーを有効にするブール値のプロパティ。
searchbar-disable文字列
ブール値
クリック時に無効にする展開可能な検索バーのCSSセレクター。または、最初に検出された検索バーを無効にするブール値のプロパティ。
searchbar-toggle文字列
ブール値
クリック時に切り替える展開可能な検索バーのCSSセレクター。または、最初に検出された検索バーを切り替えるブール値のプロパティ。
searchbar-clear文字列
ブール値
クリック時にクリアする展開可能な検索バーのCSSセレクター。または、最初に検出された検索バーをクリアするブール値のプロパティ。
card-open文字列
ブール値
クリック時に開く展開可能なカードのCSSセレクター。または、最初に検出された展開可能なカードを開くブール値。
card-close文字列
ブール値
クリック時に閉じる展開可能なカードのCSSセレクター。または、現在開いている展開可能なカードを閉じるブール値のプロパティ。
card-prevent-openブール値このプロパティを持つ要素をクリックしても、親の展開可能なカードは開きません。

ボタンイベント

イベント説明
<f7-button> イベント
clickボタンをクリックした後、イベントがトリガーされます。

buttons.vue
<template>
  <f7-page>
    <f7-navbar title="Buttons"></f7-navbar>

    <f7-block-title>Usual Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <div class="grid grid-cols-3 grid-gap">
        <f7-button>Button</f7-button>
        <f7-button>Button</f7-button>
        <f7-button round>Round</f7-button>
      </div>
    </f7-block>

    <f7-block-title>Tonal Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <div class="grid grid-cols-3 grid-gap">
        <f7-button tonal>Button</f7-button>
        <f7-button tonal>Button</f7-button>
        <f7-button tonal round>Round</f7-button>
      </div>
    </f7-block>

    <f7-block-title>Fill Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <div class="grid grid-cols-3 grid-gap">
        <f7-button fill>Button</f7-button>
        <f7-button fill>Button</f7-button>
        <f7-button fill round>Round</f7-button>
      </div>
    </f7-block>

    <f7-block-title>Outline Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <div class="grid grid-cols-3 grid-gap">
        <f7-button outline>Button</f7-button>
        <f7-button outline>Button</f7-button>
        <f7-button outline round>Round</f7-button>
      </div>
    </f7-block>

    <f7-block-title>Raised Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button raised>Button</f7-button>
        <f7-button raised fill>Fill</f7-button>
        <f7-button raised outline>Outline</f7-button>
      </p>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button raised round>Round</f7-button>
        <f7-button raised fill round>Fill</f7-button>
        <f7-button raised outline round>Outline</f7-button>
      </p>
    </f7-block>

    <f7-block-title>Large Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <p class="grid grid-cols-2 grid-gap">
        <f7-button large>Button</f7-button>
        <f7-button large fill>Fill</f7-button>
      </p>
      <p class="grid grid-cols-2 grid-gap">
        <f7-button large raised>Raised</f7-button>
        <f7-button large raised fill>Raised Fill</f7-button>
      </p>
    </f7-block>

    <f7-block-title>Small Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button small>Button</f7-button>
        <f7-button small outline>Outline</f7-button>
        <f7-button small fill>Fill</f7-button>
      </p>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button small round>Button</f7-button>
        <f7-button small outline round>Outline</f7-button>
        <f7-button small fill round>Fill</f7-button>
      </p>
    </f7-block>

    <f7-block-title>Preloader Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <p class="grid grid-cols-2 grid-gap">
        <f7-button preloader :loading="isLoading1" large @click="load1"> Load </f7-button>
        <f7-button preloader :loading="isLoading2" large fill @click="load2"> Load </f7-button>
      </p>
    </f7-block>

    <f7-block-title>Color Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <div class="grid grid-cols-3 grid-gap">
        <f7-button color="red">Red</f7-button>
        <f7-button color="green">Green</f7-button>
        <f7-button color="blue">Blue</f7-button>
      </div>
    </f7-block>

    <f7-block-title>Color Fill Buttons</f7-block-title>
    <f7-block strong outline-ios>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button color="red">Red</f7-button>
        <f7-button color="green">Green</f7-button>
        <f7-button color="blue">Blue</f7-button>
      </p>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button color="pink">Pink</f7-button>
        <f7-button color="yellow">Yellow</f7-button>
        <f7-button color="orange">Orange</f7-button>
      </p>
      <p class="grid grid-cols-3 grid-gap">
        <f7-button color="black">Black</f7-button>
        <f7-button color="white">White</f7-button>
      </p>
    </f7-block>
  </f7-page>
</template>
<script>
import { ref } from 'vue';
import { f7Navbar, f7Page, f7BlockTitle, f7Block, f7Button } from 'framework7-vue';

export default {
  components: {
    f7Navbar,
    f7Page,
    f7BlockTitle,
    f7Block,
    f7Button,
  },
  setup() {
    const isLoading1 = ref(false);
    const isLoading2 = ref(false);

    const load1 = () => {
      if (isLoading1.value) return;
      isLoading1.value = true;
      setTimeout(() => {
        isLoading1.value = false;
      }, 4000);
    };

    const load2 = () => {
      if (isLoading2.value) return;
      isLoading2.value = true;
      setTimeout(() => {
        isLoading2.value = false;
      }, 4000);
    };

    return {
      isLoading1,
      isLoading2,
      load1,
      load2,
    };
  },
};
</script>