Writing your first component

The contents of a component can be stored in a simple Blade view.

{{-- resources/views/components/myAlert.blade.php --}}

<div class="{{ $type }}">
   {{ $message }}
</div>

Before using that component you must first register it. Typically you would do this in the AppServiceProvider boot() method or a service provider of your own

BladeX::component('components.myAlert');

BladeX will automatically kebab-case your Blade view name and use that as the tag for your component. So for the example above the tag to use your component would be my-alert.

If you want to use a custom tag name use the tag-method.

BladeX::component('components.myAlert')->tag('my-custom-tag');

You can also register an entire directory like this.

// This will register all Blade views that are stored in `resources/views/components`

BladeX::component('components.*');

Or you can register multiple directories like this.

// This will register all Blade views that are stored in both `resources/views/components` and `resources/views/layouts`

BladeX::component([
   'components.*',
   'layouts.*',
]);

In your Blade view you can now use the component using the kebab-cased name:

<h1>My view</h1>

<my-alert type="error" :message="$message" />