ng-show
/ng-hide
will always insert the DOM element, but will display/hide it based on the condition. ng-if
will not insert the DOM element until the condition is not fulfilled.
ng-if
is better when we needed the DOM to be loaded conditionally, as it will help load page bit faster compared to ng-show
/ng-hide
.
We only need to keep in mind what the difference between these directives is, so deciding which one to use totally depends on the task requirements.