Input handling methods

There seems to be two main ways in PlayCanvas to handle inputs. 1) Listening to events which you would do in initialize() 2) using methods like isPressed(key) which you would to in update().

I’d like your opinion.

  • Generally, should one method be preferred over the other?
  • What are some specific cases where you would definitely prefer one way over the other?
  • What are the advantages and disadvantages of each method?
  • Performance wise, is there a difference?