@@ -30,53 +30,78 @@ npm install react-use-event-listeners
30
30
31
31
## 💁 Usage
32
32
33
+ example component is count-up button app
34
+
33
35
``` javascript
36
+ const CountUpApp = () => {
37
+ const eventTargetRef = useRef (null )
38
+
39
+ const countUp = useCallback (() => {
40
+ setCount (prev => prev + 1 )
41
+ }, [])
42
+
43
+ const handleOver = useCallback (() => {
44
+ console .log (' user will click count-up button' )
45
+ }, [])
46
+
47
+ useEventListeners (
48
+ {
49
+ eventTarget: eventTargetRef .current ,
50
+ listeners: [
51
+ [' click' , countUp],
52
+ [' pointerover' , handleOver],
53
+ ]
54
+ },
55
+ [eventTargetRef .current ]
56
+ )
57
+
58
+ return (
59
+ <>
60
+ < div className= " displayCount" > {count}< / div>
61
+ < div className= " countUpButton" ref= {eventTargetRef}>
62
+ Click then count up
63
+ < / div>
64
+ < / >
65
+ )
66
+ }
34
67
```
35
68
36
69
## 🔥 APIs
37
70
38
- ### ` useEventListeners(element, listeners) `
39
-
40
- | name | require | type | default | decstiption |
41
- | ----------- | :-----: | :--------------------------------------------------------------------------------------------------------: | :-----: | ------------------------------------------------------------------------------------------------------- |
42
- | eventTarget | ✓ | EventTarget | - | [ MDN - EventTarget] ( https://developer.mozilla.org/en-US/docs/Web/API/EventTarget ) |
43
- | listeners | ✓ | Array([ EventListeners] ( https://1natsu172.github.io/react-use-event-listeners/globals.html#eventlisteners ) ) | - | [ MDN - addEventListener] ( https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener ) |
71
+ ### ` useEventListeners(values, dependencyList) `
44
72
45
- #### About the 2nd argument(listeners)
73
+ | name | require | type | default | decstiption |
74
+ | -------------- | :-----: | :----: | :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------- |
75
+ | values | ✓ | Object | - | See below |
76
+ | dependencyList | - | Array | - | [ About React hooks 2nd argument array(DependencyList)] ( https://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects ) |
46
77
78
+ #### About the 1st argument object(values)
47
79
48
- ##### The element of the array
80
+ | name | require | type | default | decstiption |
81
+ | ----------- | :-----: | :---------: | :-----: | ------------------------------------------------------------------------------------------------------------------- |
82
+ | eventTarget | - | EventTarget | - | [ MDN - EventTarget] ( https://developer.mozilla.org/en-US/docs/Web/API/EventTarget ) |
83
+ | listeners | ✓ | Array | - | [ README - register-event-listeners] ( https://github.com/1natsu172/register-event-listeners#the-element-of-the-array ) |
49
84
50
- ** Element is same as the format of the argument of [ ` addEventListener ` ] ( https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener ) **
85
+ ##### What's listeners?
51
86
52
- That is this 👉 ` [type, listener[, options])] `
87
+ The listeners are the same format as dependency module [ register-event-listeners ] ( https://github.com/1natsu172/register-event-listeners ) . Please refer to that document for details.
53
88
54
- * ` type ` is ** [ event.type] ( https://developer.mozilla.org/ja/docs/Web/API/Event/type ) .**
55
- * ` listener ` is commonly called a ** handler**
56
- * ` options ` is listenerOptions
89
+ > https://github.com/1natsu172/register-event-listeners#the-element-of-the-array
57
90
58
- ##### The 2nd argument should be like this.
91
+ ##### So, the 1st argument should be like this.
59
92
60
93
``` javascript
61
- [
62
- [' touchstart' , onTouchStart, {capture: true , once: true }],
63
- [' touchmove' , onTouchMove, { passive: false }],
64
- [' touchend' , onEnd],
65
- [' touchcancel' , onEnd]
66
- ]
94
+ {
95
+ eventTarget: eventTargetRef .current ,
96
+ listeners: [
97
+ [' touchstart' , onTouchStart, {capture: true , once: true }],
98
+ [' touchmove' , onTouchMove, { passive: false }],
99
+ [' touchend' , onEnd],
100
+ [' touchcancel' , onEnd]
101
+ ]
102
+ }
67
103
```
68
104
69
- #### Returns
70
-
71
- ##### register
72
-
73
- register event listeners. In other words _ addEventListener** s** _ .
74
-
75
- ##### unRegister
76
-
77
- unRegister event listeners. In other words _ removeEventListener** s** _ .
78
-
79
-
80
105
## 💚 Running the tests
81
106
82
107
with [ Jest] ( https://jestjs.io/ ) .
0 commit comments