按鈕 React 元件

按鈕 React 元件代表 Framework7 的 按鈕 元素。

按鈕元件

包含下列元件

按鈕屬性

按鈕元件擁有與 連結 元件幾乎相同的屬性,但有幾個額外的按鈕特定屬性

屬性類型預設值說明
<Button> 屬性
type字串如果是 submitbuttonreset 之一,則會以 <button> 元素呈現,並具有相同的 type 屬性
tabLink字串
布林值
啟用分頁連結,並指定目標分頁的 CSS 選擇器(如果指定為字串)
tabLinkActive布林值false使此分頁連結處於作用中
active布林值false在分段中使用時,使此按鈕處於作用中狀態。必須用於取代 tab-link-active
text字串按鈕文字標籤
tooltip字串按鈕 工具提示 文字,在按鈕滑鼠移入/按下時顯示
tooltipTrigger字串hover定義如何觸發(開啟)工具提示。可以是 hoverclickmanual
round布林值false使按鈕變圓
roundIos布林值false僅對 iOS 主題使按鈕變圓
roundMd布林值false僅對 MD 主題使按鈕變圓
large布林值false使按鈕變大
largeIos布林值false僅對 iOS 主題使按鈕變大
largeMd布林值false僅對 MD 主題使按鈕變大
small布林值false使按鈕變小
smallIos布林值false僅對 iOS 主題使按鈕變小
smallMd布林值false僅對 MD 主題使按鈕變小
fill布林值false使按鈕填滿顏色
fillIos布林值false僅對 iOS 主題使按鈕填滿顏色
fillMd布林值false僅對 MD 主題使按鈕填滿顏色
tonal布林值false使按鈕為色調樣式
tonalIos布林值false僅對 iOS 主題使按鈕為色調樣式
tonalMd布林值false僅對 MD 主題使按鈕為色調樣式
raised布林值false使按鈕凸起
raisedIos布林值false僅在 iOS 主題中使按鈕凸起
raisedMd布林值false僅在 MD 主題中使按鈕凸起
outline布林值false建立按鈕輪廓
outlineIos布林值false僅在 iOS 主題中建立按鈕輪廓
outlineMd布林值false僅在 MD 主題中建立按鈕輪廓
<Button> 與預載器相關的屬性
preloader布林值false啟用按鈕以擁有預載器
loading布林值false控制按鈕狀態以顯示/隱藏預載器和隱藏/顯示按鈕文字(將按鈕切換至載入狀態)
preloaderColor字串按鈕的預載器顏色
preloaderSize數字
字串
按鈕的預載器大小
<Button> 與圖示相關的屬性
iconSize字串
數字
圖示大小(以像素為單位)
iconColor字串圖示顏色。其中一種 預設顏色
icon字串自訂圖示類別
iconF7字串F7 圖示字型圖示名稱
iconMaterial字串Material 圖示字型圖示名稱
iconIos字串如果使用 iOS 主題時要使用的圖示。由圖示系列和圖示名稱組成,並以冒號分隔,例如 f7:house
iconMd字串如果使用 MD 主題時要使用的圖示。由圖示系列和圖示名稱組成,並以冒號分隔,例如 material:home
<Button> 與導覽/路由相關的屬性
href字串
布林值
#要載入的頁面網址。如果為布林值 href="false",它不會新增 href 標籤
target字串連結目標屬性的值,例如 _blank_self
view字串要載入頁面的檢視 CSS 選擇器。或 current 以在目前檢視中載入
external布林值啟用以繞過 Framework7 的連結點擊處理常式
back布林值啟用返回導覽連結
openIn字串允許開啟頁面路由為 modal 或面板。可以是 popuploginScreensheetpopoverpanel
force布林值強制載入頁面並忽略歷史記錄中的前一頁(與 back 屬性一起使用)
reloadCurrent布林值重新載入新頁面,而不是目前活動的頁面
reloadPrevious布林值使用路由中的新頁面取代歷史記錄中的前一頁
reloadAll布林值載入新頁面並從歷史記錄和 DOM 中移除所有前一頁面
reloadDetail布林值在主從視圖中重新載入詳細資料頁面
animate布林值停用頁面動畫
transition字串自訂頁面轉場 的名稱
ignoreCache布林值忽略快取
routeTabId字串可路由的標籤 id
routeProps物件包含其他屬性的物件,這些屬性會傳遞給目標路由元件
preventRouter布林值false如果設定,則 Framework7 路由器不會處理
<Button> 動作相關屬性
panelOpen字串
布林值
按一下時要開啟的面板 CSS 選擇器。如果 DOM 中只有左側或右側面板,則可以是 leftright
panelClose字串
布林值
按一下時關閉面板
panelToggle字串
布林值
按一下時要切換的面板 CSS 選擇器。如果 DOM 中只有左側或右側面板,則可以是 leftright
actionsOpen字串
布林值
按一下時要開啟的動作表單 CSS 選擇器
actionsClose字串
布林值
按一下時要關閉的動作表單 CSS 選擇器。或布林屬性,用於關閉目前開啟的動作表單
popupOpen字串
布林值
按一下時要開啟的快顯視窗 CSS 選擇器
popupClose字串
布林值
按一下時要關閉的快顯視窗 CSS 選擇器。或布林屬性,用於關閉目前開啟的快顯視窗
popoverOpen字串
布林值
按一下時要開啟的浮動視窗 CSS 選擇器
popoverClose字串
布林值
按一下時要關閉的浮動視窗 CSS 選擇器。或布林屬性,用於關閉目前開啟的浮動視窗
sheetOpen字串
布林值
按一下時要開啟的表單模組 CSS 選擇器
sheetClose字串
布林值
按一下時要關閉的表單模組 CSS 選擇器。或布林屬性,用於關閉目前開啟的表單模組
loginScreenOpen字串
布林值
按一下時要開啟的登入畫面 CSS 選擇器
loginScreenClose字串
布林值
按一下時要關閉的登入畫面 CSS 選擇器。或布林屬性,用於關閉目前開啟的登入畫面
sortableEnable字串
布林值
按一下時要啟用的可排序清單 CSS 選擇器
sortableDisable字串
布林值
按一下時要停用的可排序清單 CSS 選擇器。或布林屬性,用於關閉目前開啟的可排序清單
sortableToggle字串
布林值
可於點擊時切換的 Sortable 清單的 CSS 選擇器。或切換目前已開啟/已關閉 Sortable 清單的布林屬性
searchbarEnable字串
布林值
可於點擊時啟用的可展開搜尋列的 CSS 選擇器。或啟用第一個找到的搜尋列的布林屬性
searchbarDisable字串
布林值
可於點擊時停用的可展開搜尋列的 CSS 選擇器。或停用第一個找到的搜尋列的布林屬性
searchbarToggle字串
布林值
可於點擊時切換的可展開搜尋列的 CSS 選擇器。或切換第一個找到的搜尋列的布林屬性
searchbarClear字串
布林值
可於點擊時清除的可展開搜尋列的 CSS 選擇器。或清除第一個找到的搜尋列的布林屬性
cardOpen字串
布林值
可於點擊時開啟的可展開卡片的 CSS 選擇器。或開啟第一個找到的可展開卡片的布林屬性
cardClose字串
布林值
可於點擊時關閉的可展開卡片的 CSS 選擇器。或關閉目前已開啟的可展開卡片的布林屬性
cardPreventOpen布林值點擊具有此屬性的元素不會開啟其父可展開卡片

按鈕事件

事件說明
<Button> 事件
click點擊按鈕後將觸發事件

範例

buttons.jsx
import React, { useState } from 'react';
import { Navbar, Page, BlockTitle, Block, Button } from 'framework7-react';

export default () => {
  const [isLoading1, setIsLoading1] = useState(false);
  const [isLoading2, setIsLoading2] = useState(false);

  const load1 = () => {
    if (isLoading1) return;
    setIsLoading1(true);
    setTimeout(() => {
      setIsLoading1(false);
    }, 4000);
  };
  const load2 = () => {
    if (isLoading2) return;
    setIsLoading2(true);
    setTimeout(() => {
      setIsLoading2(false);
    }, 4000);
  };

  return (
    <Page>
      <Navbar title="Buttons" />

      <BlockTitle>Usual Buttons</BlockTitle>
      <Block strong outlineIos>
        <div className="grid grid-cols-3 grid-gap">
          <Button>Button</Button>
          <Button>Button</Button>
          <Button round>Round</Button>
        </div>
      </Block>

      <BlockTitle>Tonal Buttons</BlockTitle>
      <Block strong outlineIos>
        <div className="grid grid-cols-3 grid-gap">
          <Button tonal>Button</Button>
          <Button tonal>Button</Button>
          <Button tonal round>
            Round
          </Button>
        </div>
      </Block>

      <BlockTitle>Fill Buttons</BlockTitle>
      <Block strong outlineIos>
        <div className="grid grid-cols-3 grid-gap">
          <Button fill>Button</Button>
          <Button fill>Button</Button>
          <Button fill round>
            Round
          </Button>
        </div>
      </Block>

      <BlockTitle>Outline Buttons</BlockTitle>
      <Block strong outlineIos>
        <div className="grid grid-cols-3 grid-gap">
          <Button outline>Button</Button>
          <Button outline>Button</Button>
          <Button outline round>
            Round
          </Button>
        </div>
      </Block>

      <BlockTitle>Raised Buttons</BlockTitle>
      <Block strong outlineIos>
        <p className="grid grid-cols-3 grid-gap">
          <Button raised>Button</Button>
          <Button raised fill>
            Fill
          </Button>
          <Button raised outline>
            Outline
          </Button>
        </p>
        <p className="grid grid-cols-3 grid-gap">
          <Button raised round>
            Round
          </Button>
          <Button raised fill round>
            Fill
          </Button>
          <Button raised outline round>
            Outline
          </Button>
        </p>
      </Block>

      <BlockTitle>Large Buttons</BlockTitle>
      <Block strong outlineIos>
        <p className="grid grid-cols-2 grid-gap">
          <Button large>Button</Button>
          <Button large fill>
            Fill
          </Button>
        </p>
        <p className="grid grid-cols-2 grid-gap">
          <Button large raised>
            Raised
          </Button>
          <Button large raised fill>
            Raised Fill
          </Button>
        </p>
      </Block>

      <BlockTitle>Small Buttons</BlockTitle>
      <Block strong outlineIos>
        <p className="grid grid-cols-3 grid-gap">
          <Button small>Button</Button>
          <Button small outline>
            Outline
          </Button>
          <Button small fill>
            Fill
          </Button>
        </p>
        <p className="grid grid-cols-3 grid-gap">
          <Button small round>
            Button
          </Button>
          <Button small outline round>
            Outline
          </Button>
          <Button small fill round>
            Fill
          </Button>
        </p>
      </Block>

      <BlockTitle>Preloader Buttons</BlockTitle>
      <Block strong outlineIos>
        <p className="grid grid-cols-2 grid-gap">
          <Button preloader loading={isLoading1} onClick={load1} large>
            Load
          </Button>
          <Button preloader loading={isLoading2} onClick={load2} large fill>
            Load
          </Button>
        </p>
      </Block>

      <BlockTitle>Color Buttons</BlockTitle>
      <Block strong outlineIos>
        <div className="grid grid-cols-3 grid-gap">
          <Button color="red">Red</Button>
          <Button color="green">Green</Button>
          <Button color="blue">Blue</Button>
        </div>
      </Block>

      <BlockTitle>Color Fill Buttons</BlockTitle>
      <Block strong outlineIos>
        <p className="grid grid-cols-3 grid-gap">
          <Button color="red">Red</Button>
          <Button color="green">Green</Button>
          <Button color="blue">Blue</Button>
        </p>
        <p className="grid grid-cols-3 grid-gap">
          <Button color="pink">Pink</Button>
          <Button color="yellow">Yellow</Button>
          <Button color="orange">Orange</Button>
        </p>
        <p className="grid grid-cols-3 grid-gap">
          <Button color="black">Black</Button>
          <Button color="white">White</Button>
        </p>
      </Block>
    </Page>
  );
};