- ReactJS 教程
- ReactJS - 首頁
- ReactJS - 簡介
- ReactJS - 路線圖
- ReactJS - 安裝
- ReactJS - 特性
- ReactJS - 優點和缺點
- ReactJS - 架構
- ReactJS - 建立 React 應用程式
- ReactJS - JSX
- ReactJS - 元件
- ReactJS - 巢狀元件
- ReactJS - 使用新建立的元件
- ReactJS - 元件集合
- ReactJS - 樣式
- ReactJS - 屬性 (props)
- ReactJS - 使用屬性建立元件
- ReactJS - props 驗證
- ReactJS - 建構函式
- ReactJS - 元件生命週期
- ReactJS - 事件管理
- ReactJS - 建立一個事件感知元件
- ReactJS - 在 Expense Manager APP 中引入事件
- ReactJS - 狀態管理
- ReactJS - 狀態管理 API
- ReactJS - 無狀態元件
- ReactJS - 使用 React Hooks 進行狀態管理
- ReactJS - 使用 React Hooks 進行元件生命週期管理
- ReactJS - 佈局元件
- ReactJS - 分頁
- ReactJS - Material UI
- ReactJS - Http 客戶端程式設計
- ReactJS - 表單程式設計
- ReactJS - 受控元件
- ReactJS - 非受控元件
- ReactJS - Formik
- ReactJS - 條件渲染
- ReactJS - 列表
- ReactJS - Keys
- ReactJS - 路由
- ReactJS - Redux
- ReactJS - 動畫
- ReactJS - Bootstrap
- ReactJS - 地圖
- ReactJS - 表格
- ReactJS - 使用 Flux 管理狀態
- ReactJS - 測試
- ReactJS - CLI 命令
- ReactJS - 構建和部署
- ReactJS - 示例
- Hooks
- ReactJS - Hooks 簡介
- ReactJS - 使用 useState
- ReactJS - 使用 useEffect
- ReactJS - 使用 useContext
- ReactJS - 使用 useRef
- ReactJS - 使用 useReducer
- ReactJS - 使用 useCallback
- ReactJS - 使用 useMemo
- ReactJS - 自定義 Hooks
- ReactJS 高階
- ReactJS - 可訪問性
- ReactJS - 程式碼分割
- ReactJS - 上下文
- ReactJS - 錯誤邊界
- ReactJS - 轉發 Refs
- ReactJS - 片段
- ReactJS - 高階元件
- ReactJS - 與其他庫整合
- ReactJS - 最佳化效能
- ReactJS - Profiler API
- ReactJS - 埠
- ReactJS - 無 ES6 ECMAScript 的 React
- ReactJS - 無 JSX 的 React
- ReactJS - 調和
- ReactJS - Refs 和 DOM
- ReactJS - 渲染 Props
- ReactJS - 靜態型別檢查
- ReactJS - 嚴格模式
- ReactJS - Web Components
- 其他概念
- ReactJS - 日期選擇器
- ReactJS - Helmet
- ReactJS - 內聯樣式
- ReactJS - PropTypes
- ReactJS - BrowserRouter
- ReactJS - DOM
- ReactJS - 走馬燈
- ReactJS - 圖示
- ReactJS - 表單元件
- ReactJS - 參考 API
- ReactJS 有用資源
- ReactJS - 快速指南
- ReactJS - 有用資源
- ReactJS - 討論
ReactJS - 指標事件處理程式
當我們使用 React 時,我們可能希望對使用者互動(如點選或觸控)做出響應。指標事件可以幫助我們做到這一點。
在 React 中,我們建立一個函式(通常稱為事件處理程式)來處理這些互動。當用戶使用其指標裝置(如滑鼠或觸控板)執行某些操作時,此函式將被觸發。
PointerEvent 類表示由不同輸入裝置(如滑鼠、筆和觸控式螢幕)生成的事件。這些事件提供有關指標的資訊,例如其位置、裝置型別、壓力、傾斜度和其他特性。
語法
<div
onPointerEnter={e => console.log('onPointerEnter')}
onPointerMove={e => console.log('onPointerMove')}
onPointerDown={e => console.log('onPointerDown')}
onPointerUp={e => console.log('onPointerUp')}
onPointerLeave={e => console.log('onPointerLeave')}
/>
引數
e - 它是一個 React 事件物件。
PointerEvent 的屬性
以下是 PointerEvent 的一些重要屬性 -
| 序號 | 屬性和描述 |
|---|---|
| 1 | pointerId 它是導致事件的指標的唯一識別符號。 |
| 2 | width 和 height 這兩個屬性以 CSS 畫素顯示接觸區域的尺寸。 |
| 3 | pressure 顯示施加的壓力,其中 0 和 1 分別表示最小和最大壓力。 |
| 4 | tiltX 和 tiltY 這些屬性指定指標的傾斜角。 |
| 5 | twist 表示指標的順時針旋轉。 |
| 6 | pointerType 標識輸入裝置的型別(例如,滑鼠、筆、觸控)。 |
| 7 | isPrimary 顯示指標是否是其型別的首要指標。 |
示例
首先,讓我們建立一個簡單的 React 應用程式。要建立 React 應用程式,如果之前未安裝,我們應該安裝 Node.js 和 npm。然後,執行以下命令以構建新的 React 應用程式 -
npx create-react-app my-react-app cd my-react-app npm start
示例 - 標題指標事件
現在讓我們看看如何在 React 應用程式中使用 PointerEvent 屬性。當在 <div> 元素上發生指標事件時,我們將記錄以下資訊 -
import React from 'react';
function App() {
return (
<>
<h1
onPointerEnter={e => console.log('onPointerEnter')}
onPointerMove={e => console.log('onPointerMove')}
onPointerDown={e => console.log('onPointerDown')}
onPointerUp={e => console.log('onPointerUp')}
onPointerLeave={e => console.log('onPointerLeave')}
>
Trigger pointer events over this div
</h1>
</>
);
}
export default App;
輸出
示例 - 更改背景顏色
在這個示例中,我們將有一個 React 應用程式,當用戶將滑鼠懸停在其上時,它會更改 div 元素的背景顏色。因此,我們將使用 useState hook 建立一個狀態變數 (bgColor) 及其更新器函式 (setBgColor)。定義了兩個函式,handlePointerEnter 和 handlePointerLeave,用於在使用者將滑鼠懸停在 div 上或離開 div 時更新背景顏色。內聯樣式根據當前的 bgColor 狀態動態調整 div 的背景顏色。div 內部的文字告訴使用者將滑鼠懸停在其上以更改顏色。因此,此應用程式的程式碼如下 -
import React, { useState } from 'react';
function App() {
const [bgColor, setBgColor] = useState('#3498db');
return (
<div
onPointerEnter={() => setBgColor('#e67e22')}
onPointerLeave={() => setBgColor('#3498db')}
style={{ border: '2px solid #3498db', padding: '20px', margin: '10px', backgroundColor: bgColor }}
>
Hover to change color!
</div>
);
}
export default App;
輸出
此應用程式提供了一個基本示例,說明如何使用 React 狀態和指標事件在 Web 應用程式中建立互動式樣式更改。
示例 - 雙擊更改大小
現在,我們將建立一個簡單的 React 應用程式,允許使用者透過雙擊 div 元素來更改其大小。useState hook 用於建立狀態變數及其更新器函式。初始大小設定為 100 畫素。當呼叫 handleDoubleClick 函式時,它會在 100 和 150 畫素之間切換大小。div 元素使用 onDoubleClick 事件偵聽雙擊,從而觸發 handleDoubleClick 函式。
import React, { useState } from 'react';
function App() {
const [size, setSize] = useState(100);
const handleDoubleClick = () => {
setSize((prevSize) => (prevSize === 100 ? 150 : 100));
};
return (
<div
onDoubleClick={handleDoubleClick}
style={{
border: '2px solid #2ecc71',
padding: '20px',
margin: '10px',
width: `${size}px`,
height: `${size}px`,
}}
>
Double click to change size!
</div>
);
}
export default App;
輸出
此應用程式提供了一個基本示例,說明如何使用 React 狀態和事件處理在 Web 應用程式中建立互動式行為。
總結
在本教程中,我們在基本 React 應用程式的上下文中介紹了 PointerEvent。我們已經瞭解了重要的屬性以及如何處理這些事件的示例。瞭解這些事件對於開發動態和響應式的 Web 應用程式至關重要。因此,我們可以在 React 應用程式中試驗這些想法,以更好地瞭解它們的功能。