AngularJS directives extend basic HTML elements and create reusable code. The framework includes built-in directives, such as ng-click and ng-model, and allows users to create custom directives with defined restrictions and isolated scopes. Each directive has its own scope and can access the parent scope, with various data types passed through string literals.