En Reaccionar nativo, hay por lo menos tres maneras de hacer un botón: TouchableNativeFeedback, TouchableHighlighty TouchableOpacity. También existe TouchableWithoutFeedback, que la documentación indica claramente que no debes usar porque "todos los elementos que responden a la prensa deben tener una retroalimentación visual cuando se tocan".
- TouchableNativeFeedback es solo para Android y "reemplaza la vista con otra instancia de RCTView"
- TouchableHighlight "agrega una vista a la jerarquía de vista"
- TouchableOpacity funciona "sin cambiar la jerarquía de vistas"
¿Existen otras diferencias significativas entre los tres? ¿Uno de ellos es el componente goto? ¿En qué caso debería usar TouchableHighlightover TouchableOpacity? ¿Hay implicaciones en el rendimiento?
Estoy escribiendo una aplicación en este momento y encuentro que las tres tienen un retraso significativo entre el toque y la acción (en este caso, un cambio de navegación). ¿Hay alguna forma de hacerlo más ágil?
fuente

Respuestas:
fuente: https://medium.com/differential/better-cross-platform-react-native-components-cb8aadeba472 , por Nick Wientge
TouchableHighlight• Qué hace: Oscurece o aclara el fondo del elemento cuando se presiona.
• Cuándo usarlo: en iOS para elementos táctiles o botones que tienen una forma sólida o un fondo, y en elementos ListView.
TouchableOpacity• Qué hace: aclara la opacidad de todo el elemento cuando se presiona.
• Cuándo usarlo: En iOS para elementos táctiles que son texto independiente o íconos sin color de fondo.
TouchableNativeFeedback• Qué hace: agrega un efecto dominó al fondo cuando se presiona.
• Cuándo usarlo: en Android para casi todos los elementos táctiles.
fuente
Bueno, así es como suelo decidir qué usar:
TouchableNativeFeedbackTouchableHighlight. (TouchableOpacitytiene algunas partes extrañas cuando tú mismo controlas la opacidad).TouchableOpacityporque está más "desnudo" queTouchableHighlightfuente
Creo que la principal diferencia esencial como se indica en Docs:
TouchableHighlight must have one child (not zero or more than one). If you wish to have several child components, wrap them in a View.enlaceTocable Resaltar
Opacidad táctil
fuente
Si quieres
TouchableHighlightTouchableOpacityfuente
<TouchableHighlight underlayColor="transparent" />... y Facebook mezcla todos los de su aplicación F8 github.com/fbsamples/f8app/blob/master/js/common/F8Touchable.js