title: When to use TouchableNativeFeedback, TouchableHighlight or TouchableOpacity?
body: <p>In React Native, there are at least three ways to make a button: <code>TouchableNativeFeedback</code>, <code>TouchableHighlight</code> and <code>TouchableOpacity</code>. There is also <code>TouchableWithoutFeedback</code>, which the documentation clearly states you should not use because "all the elements that respond to press should have a visual feedback when touched".</p>
  
  <ul>
  <li><a href="http://facebook.github.io/react-native/releases/0.31/docs/touchablenativefeedback.html#touchablenativefeedback">TouchableNativeFeedback</a> is Android only and "replaces the View with another instance of RCTView"</li>
  <li><a href="https://facebook.github.io/react-native/docs/touchablehighlight.html#touchablehighlight">TouchableHighlight</a> "adds a view to the view hierarchy"</li>
  <li><a href="https://facebook.github.io/react-native/docs/touchableopacity.html#touchableopacity">TouchableOpacity</a> works "without changing the view hierarchy"</li>
  </ul>
  
  <p>Are there any other significant differences between the three? Is one of them the goto component? In what case should you use <code>TouchableHighlight</code> over <code>TouchableOpacity</code>? Are there any performance implications?</p>
  
  <p>I am writing an application right now, and find that all three have a significant delay between tap and the action (in this case a navigation change). Is there any way to make it snappier?</p>