If I have many events/or 1 click event click for more than 1 times on the same page，the event counts will be accumulate
Such as if I click a button (event10) 3 times，I want it to be the first time: event10=1 the second time: event 10=1 the third time event10=1, totally 3 times.
However it showed as the first time: event10=1 the second time: event 10=2 the third time event10=3, totally 6 events were recorded/send.
A similar situation also happened in different button clicks on one page.
If I clear variables after sending beacon, the other useful eVars and Props will be all clear (I have more than 50 eVars/props so It will be a huge work for me to reset the other variable after clear variable), so how can I just celar the variables of the event10 or let it not accumulate.
If you remain on the page to allow subsequent events trigger, you need to clearVars after each beacon send otherwise each event will have all the variables included from before (or at least the ones not overridden)
So adding the clear variables rule after the beacon fire is the way to go. If you have a lot of rules (and depending on your setup) - this can be annoying (it was for me).
Luckily - There is a nuclear approach to fix this. Adobe analytics allows for a hook to fire after the beacon is sent. So you can create a hook (code follows next) to clear vars after the beacon is sent. Then this is done universally on the property and you don't need to worry about it anymore. Place this code either as a piece of custom code in the analytics extension, or as a new rule that fires ONCE before any beacons are sent.
It does sound like clear vars is normally the right way to go, but you have several options if you want the remaining variables to persist:
Explicitly unset the event in custom code. E.g. Using yuhuisg's code to unset all events.
Set the event/fire beacon in custom code using variable overrides. This is personally my favorite technique to send data only relevant to click tracking that I don't want persisting after a click--event10 in your case.
You could also make sure to set event10 in custom code to make sure you are resetting it as versus incrementing it. This can be dangerous if you are not careful to unset it as it could stay set even if you have other click tracking that wouldn't normally relate to event10.
Create a decoupled, direct call rule to set variables so that it can be reused in multiple places (like pageviews and click tracking) without actually sending a beacon within that rule.
I'm sure there are plenty of other solutions available, but the first and second above are relatively quick and easy to setup.